1 #ifndef SELDON_FILE_MY_MULTIVEC_HPP
2 #define SELDON_FILE_MY_MULTIVEC_HPP
18 template <
class ScalarType>
24 MyMultiVec(
const int Length,
const int NumberVecs);
25 MyMultiVec(
const int Length,
const std::vector<ScalarType*>& rhs);
36 int GetVecLength ()
const;
37 int GetNumberVecs ()
const;
38 ptrdiff_t GetGlobalLength ()
const;
40 void MvTimesMatAddMv (ScalarType alpha,
const Anasazi::MultiVec<ScalarType> &A,
41 const Teuchos::SerialDenseMatrix<int, ScalarType> &B,
44 void MvAddMv (ScalarType alpha,
const Anasazi::MultiVec<ScalarType>& A,
45 ScalarType beta,
const Anasazi::MultiVec<ScalarType>& B);
47 void MvTransMv (ScalarType alpha,
const Anasazi::MultiVec<ScalarType>& A,
48 Teuchos::SerialDenseMatrix< int, ScalarType >& B
49 #ifdef HAVE_ANASAZI_EXPERIMENTAL
50 , Anasazi::ConjType conj
54 void MvDot (
const Anasazi::MultiVec<ScalarType>& A, std::vector<ScalarType> &b
55 #ifdef HAVE_ANASAZI_EXPERIMENTAL
56 , Anasazi::ConjType conj
60 void MvNorm ( std::vector<
typename Teuchos::
61 ScalarTraits<ScalarType>::magnitudeType> &normvec )
const;
63 void SetBlock (
const Anasazi::MultiVec<ScalarType>& A,
64 const std::vector<int> &index);
66 void MvScale( ScalarType alpha );
68 void MvScale(
const std::vector<ScalarType>& alpha );
71 void MvInit (ScalarType alpha);
72 void MvPrint (std::ostream &os)
const;
74 ScalarType& operator()(
const int i,
const int j);
75 const ScalarType& operator()(
const int i,
const int j)
const;
76 ScalarType* operator[](
int v);
77 ScalarType* operator[](
int v)
const;
85 const int NumberVecs_;
87 std::vector<ScalarType*> data_;
89 std::vector<bool> ownership_;
93 template <
typename ScalarType>
99 #endif // MY_MULTIVECTOR_HPP