#include <BelosMultiVec.hpp>
Inheritance diagram for Belos::MultiVec< ScalarType >:

Public Member Functions | |
Constructor/Destructor | |
| MultiVec () | |
| BelosMultiVec constructor. | |
| virtual | ~MultiVec () |
| BelosMultiVec destructor. | |
Creation methods for new multivectors | |
| virtual MultiVec< ScalarType > * | Clone (const int numvecs) const =0 |
Creates a new empty BelosMultiVec containing numvecs columns. | |
| virtual MultiVec< ScalarType > * | CloneCopy () const =0 |
Creates a new BelosMultiVec and copies contents of *this into the new std::vector (deep copy). | |
| virtual MultiVec< ScalarType > * | CloneCopy (const std::vector< int > &index) const =0 |
Creates a new BelosMultiVec and copies the selected contents of *this into the new std::vector (deep copy). The copied vectors from *this are indicated by the index.size() indices in index. | |
| virtual MultiVec< ScalarType > * | CloneView (const std::vector< int > &index)=0 |
Creates a new BelosMultiVec that shares the selected contents of *this. The index of the numvecs vectors copied from *this are indicated by the indices given in index. | |
Dimension information methods | |
| virtual int | GetVecLength () const =0 |
| Obtain the std::vector length of *this multivector block. | |
| virtual int | GetNumberVecs () const =0 |
| Obtain the number of vectors in *this multivector block. | |
Update methods | |
| virtual void | MvTimesMatAddMv (const ScalarType alpha, const MultiVec< ScalarType > &A, const Teuchos::SerialDenseMatrix< int, ScalarType > &B, const ScalarType beta)=0 |
Update *this with alpha * A * B + beta * (*this). | |
| virtual void | MvAddMv (const ScalarType alpha, const MultiVec< ScalarType > &A, const ScalarType beta, const MultiVec< ScalarType > &B)=0 |
Replace *this with alpha * A + beta * B. | |
| virtual void | MvScale (ScalarType alpha)=0 |
Scale each element of the vectors in *this with alpha. | |
| virtual void | MvScale (const std::vector< ScalarType > &alpha)=0 |
Scale each element of the i-th vector in *this with alpha[i]. | |
| virtual void | MvTransMv (const ScalarType alpha, const MultiVec< ScalarType > &A, Teuchos::SerialDenseMatrix< int, ScalarType > &B) const =0 |
Compute a dense matrix B through the matrix-matrix multiply alpha * A^T * (*this). | |
| virtual void | MvDot (const MultiVec< ScalarType > &A, std::vector< ScalarType > &b) const =0 |
Compute a std::vector b where the components are the individual dot-products, i.e.b[i] = A[i]^T*this[i] where A[i] is the i-th column of A. | |
Norm method | |
| virtual void | MvNorm (std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &normvec, NormType type=TwoNorm) const =0 |
Compute the 2-norm of each individual std::vector of *this. Upon return, normvec[i] holds the 2-norm of the i-th std::vector of *this. | |
Initialization methods | |
| virtual void | SetBlock (const MultiVec< ScalarType > &A, const std::vector< int > &index)=0 |
Copy the vectors in A to a set of vectors in *this. The numvecs vectors in A are copied to a subset of vectors in *this indicated by the indices given in index. | |
| virtual void | MvRandom ()=0 |
Replace the vectors in *this with random vectors. | |
| virtual void | MvInit (const ScalarType alpha)=0 |
Replace each element of the vectors in *this with alpha. | |
Print method | |
| virtual void | MvPrint (std::ostream &os) const =0 |
Print the *this multivector. | |
A concrete implementation of this class is necessary. The user can create their own implementation if those supplied are not suitable for their needs.
Definition at line 54 of file BelosMultiVec.hpp.
| Belos::MultiVec< ScalarType >::MultiVec | ( | ) | [inline] |
| virtual Belos::MultiVec< ScalarType >::~MultiVec | ( | ) | [inline, virtual] |
| virtual MultiVec<ScalarType>* Belos::MultiVec< ScalarType >::Clone | ( | const int | numvecs | ) | const [pure virtual] |
Creates a new empty BelosMultiVec containing numvecs columns.
Implemented in Belos::EpetraMultiVec.
| virtual MultiVec<ScalarType>* Belos::MultiVec< ScalarType >::CloneCopy | ( | ) | const [pure virtual] |
Creates a new BelosMultiVec and copies contents of *this into the new std::vector (deep copy).
Implemented in Belos::EpetraMultiVec.
| virtual MultiVec<ScalarType>* Belos::MultiVec< ScalarType >::CloneCopy | ( | const std::vector< int > & | index | ) | const [pure virtual] |
Creates a new BelosMultiVec and copies the selected contents of *this into the new std::vector (deep copy). The copied vectors from *this are indicated by the index.size() indices in index.
Implemented in Belos::EpetraMultiVec.
| virtual MultiVec<ScalarType>* Belos::MultiVec< ScalarType >::CloneView | ( | const std::vector< int > & | index | ) | [pure virtual] |
Creates a new BelosMultiVec that shares the selected contents of *this. The index of the numvecs vectors copied from *this are indicated by the indices given in index.
Implemented in Belos::EpetraMultiVec.
| virtual int Belos::MultiVec< ScalarType >::GetVecLength | ( | ) | const [pure virtual] |
| virtual int Belos::MultiVec< ScalarType >::GetNumberVecs | ( | ) | const [pure virtual] |
| virtual void Belos::MultiVec< ScalarType >::MvTimesMatAddMv | ( | const ScalarType | alpha, | |
| const MultiVec< ScalarType > & | A, | |||
| const Teuchos::SerialDenseMatrix< int, ScalarType > & | B, | |||
| const ScalarType | beta | |||
| ) | [pure virtual] |
| virtual void Belos::MultiVec< ScalarType >::MvAddMv | ( | const ScalarType | alpha, | |
| const MultiVec< ScalarType > & | A, | |||
| const ScalarType | beta, | |||
| const MultiVec< ScalarType > & | B | |||
| ) | [pure virtual] |
| virtual void Belos::MultiVec< ScalarType >::MvScale | ( | ScalarType | alpha | ) | [pure virtual] |
| virtual void Belos::MultiVec< ScalarType >::MvScale | ( | const std::vector< ScalarType > & | alpha | ) | [pure virtual] |
| virtual void Belos::MultiVec< ScalarType >::MvTransMv | ( | const ScalarType | alpha, | |
| const MultiVec< ScalarType > & | A, | |||
| Teuchos::SerialDenseMatrix< int, ScalarType > & | B | |||
| ) | const [pure virtual] |
Compute a dense matrix B through the matrix-matrix multiply alpha * A^T * (*this).
Implemented in Belos::EpetraMultiVec.
| virtual void Belos::MultiVec< ScalarType >::MvDot | ( | const MultiVec< ScalarType > & | A, | |
| std::vector< ScalarType > & | b | |||
| ) | const [pure virtual] |
Compute a std::vector b where the components are the individual dot-products, i.e.b[i] = A[i]^T*this[i] where A[i] is the i-th column of A.
Implemented in Belos::EpetraMultiVec.
| virtual void Belos::MultiVec< ScalarType >::MvNorm | ( | std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > & | normvec, | |
| NormType | type = TwoNorm | |||
| ) | const [pure virtual] |
Compute the 2-norm of each individual std::vector of *this. Upon return, normvec[i] holds the 2-norm of the i-th std::vector of *this.
| virtual void Belos::MultiVec< ScalarType >::SetBlock | ( | const MultiVec< ScalarType > & | A, | |
| const std::vector< int > & | index | |||
| ) | [pure virtual] |
Copy the vectors in A to a set of vectors in *this. The numvecs vectors in A are copied to a subset of vectors in *this indicated by the indices given in index.
Implemented in Belos::EpetraMultiVec.
| virtual void Belos::MultiVec< ScalarType >::MvRandom | ( | ) | [pure virtual] |
| virtual void Belos::MultiVec< ScalarType >::MvInit | ( | const ScalarType | alpha | ) | [pure virtual] |
| virtual void Belos::MultiVec< ScalarType >::MvPrint | ( | std::ostream & | os | ) | const [pure virtual] |
1.4.7