本文整理汇总了C++中MultiVec::GetNumberVecs方法的典型用法代码示例。如果您正苦于以下问题:C++ MultiVec::GetNumberVecs方法的具体用法?C++ MultiVec::GetNumberVecs怎么用?C++ MultiVec::GetNumberVecs使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MultiVec
的用法示例。
在下文中一共展示了MultiVec::GetNumberVecs方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetBlock
void EpetraOpMultiVec::SetBlock( const MultiVec<double>& A, const std::vector<int>& index )
{
// this should be revisited to e
EpetraOpMultiVec temp_vec(Epetra_OP, Epetra_DataAccess::View, *Epetra_MV, index);
int numvecs = index.size();
if ( A.GetNumberVecs() != numvecs ) {
std::vector<int> index2( numvecs );
for(int i=0; i<numvecs; i++)
index2[i] = i;
EpetraOpMultiVec *tmp_vec = dynamic_cast<EpetraOpMultiVec *>(&const_cast<MultiVec<double> &>(A));
TEUCHOS_TEST_FOR_EXCEPTION( tmp_vec==NULL, std::invalid_argument, "Anasazi::EpetraOpMultiVec::SetBlocks() cast of MultiVec<double> to EpetraOpMultiVec failed.");
EpetraOpMultiVec A_vec(Epetra_OP, Epetra_DataAccess::View, *(tmp_vec->GetEpetraMultiVector()), index2);
temp_vec.MvAddMv( 1.0, A_vec, 0.0, A_vec );
}
else {
temp_vec.MvAddMv( 1.0, A, 0.0, A );
}
}
示例2: SetBlock
void EpetraMultiVec::SetBlock( const MultiVec<double>& A, const std::vector<int>& index )
{
EpetraMultiVec temp_vec(View, *this, index);
int numvecs = index.size();
if ( A.GetNumberVecs() != numvecs ) {
std::vector<int> index2( numvecs );
for(int i=0; i<numvecs; i++)
index2[i] = i;
EpetraMultiVec *tmp_vec = dynamic_cast<EpetraMultiVec *>(&const_cast<MultiVec<double> &>(A));
TEST_FOR_EXCEPTION(tmp_vec==NULL, EpetraMultiVecFailure,
"Belos::EpetraMultiVec::SetBlock cast from Belos::MultiVec<> to Belos::EpetraMultiVec failed.");
EpetraMultiVec A_vec(View, *tmp_vec, index2);
temp_vec.MvAddMv( 1.0, A_vec, 0.0, A_vec );
}
else {
temp_vec.MvAddMv( 1.0, A, 0.0, A );
}
}
示例3: GetNumberVecs
static int GetNumberVecs( const MultiVec<ScalarType>& mv )
{ return mv.GetNumberVecs(); }