#include <AnasaziMultiVec.hpp>
Public Member Functions | |
Constructor/Destructor | |
| MultiVec () | |
| Anasazi::MultiVec constructor. | |
| virtual | ~MultiVec () |
| Anasazi::MultiVec destructor. | |
Creation methods | |
| virtual MultiVec< ScalarType > * | Clone (const int numvecs) const =0 |
Creates a new empty Anasazi::MultiVec containing numvecs columns. | |
| virtual MultiVec< ScalarType > * | CloneCopy () const =0 |
Creates a new Anasazi::MultiVec and copies contents of *this into the new vector (deep copy). | |
| virtual MultiVec< ScalarType > * | CloneCopy (const std::vector< int > &index) const =0 |
Creates a new Anasazi::MultiVec and copies the selected contents of *this into the new 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 Anasazi::MultiVec that shares the selected contents of *this. The index of the numvecs vectors shallow copied from *this are indicated by the indices given in index. | |
Attribute methods | |
| virtual int | GetVecLength () const =0 |
| Obtain the vector length of *this. | |
| virtual int | GetNumberVecs () const =0 |
| Obtain the number of vectors in *this. | |
Update methods | |
| virtual void | MvTimesMatAddMv (ScalarType alpha, const MultiVec< ScalarType > &A, const Teuchos::SerialDenseMatrix< int, ScalarType > &B, ScalarType beta)=0 |
Update *this with alpha * A * B + beta * (*this). | |
| virtual void | MvAddMv (ScalarType alpha, const MultiVec< ScalarType > &A, ScalarType beta, const MultiVec< ScalarType > &B)=0 |
Replace *this with alpha * A + beta * B. | |
| virtual void | MvTransMv (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 vector b where the components are the individual dot-products, i.e.b[i] = A[i]^H*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) const =0 |
Compute the 2-norm of each individual vector of *this. Upon return, normvec[i] holds the 2-norm of the i-th 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 | 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 | MvRandom ()=0 |
Fill the vectors in *this with random numbers. | |
| virtual void | MvInit (ScalarType alpha)=0 |
Replace each element of the vectors in *this with alpha. | |
Print method | |
| virtual void | MvPrint (std::ostream &os) const =0 |
Print *this multivector to the os output stream. | |
A concrete implementation of this class is necessary. The user can create their own implementation if those supplied are not suitable for their needs.
| Anasazi::MultiVec< ScalarType >::MultiVec | ( | ) | [inline] |
Anasazi::MultiVec constructor.
| virtual Anasazi::MultiVec< ScalarType >::~MultiVec | ( | ) | [inline, virtual] |
Anasazi::MultiVec destructor.
| virtual MultiVec<ScalarType>* Anasazi::MultiVec< ScalarType >::Clone | ( | const int | numvecs | ) | const [pure virtual] |
Creates a new empty Anasazi::MultiVec containing numvecs columns.
Implemented in Anasazi::EpetraMultiVec.
| virtual MultiVec<ScalarType>* Anasazi::MultiVec< ScalarType >::CloneCopy | ( | ) | const [pure virtual] |
Creates a new Anasazi::MultiVec and copies contents of *this into the new vector (deep copy).
Implemented in Anasazi::EpetraMultiVec.
| virtual MultiVec<ScalarType>* Anasazi::MultiVec< ScalarType >::CloneCopy | ( | const std::vector< int > & | index | ) | const [pure virtual] |
Creates a new Anasazi::MultiVec and copies the selected contents of *this into the new vector (deep copy). The copied vectors from *this are indicated by the index.size() indices in index.
Implemented in Anasazi::EpetraMultiVec.
| virtual MultiVec<ScalarType>* Anasazi::MultiVec< ScalarType >::CloneView | ( | const std::vector< int > & | index | ) | [pure virtual] |
Creates a new Anasazi::MultiVec that shares the selected contents of *this. The index of the numvecs vectors shallow copied from *this are indicated by the indices given in index.
Implemented in Anasazi::EpetraMultiVec.
| virtual int Anasazi::MultiVec< ScalarType >::GetVecLength | ( | ) | const [pure virtual] |
| virtual int Anasazi::MultiVec< ScalarType >::GetNumberVecs | ( | ) | const [pure virtual] |
| virtual void Anasazi::MultiVec< ScalarType >::MvTimesMatAddMv | ( | ScalarType | alpha, | |
| const MultiVec< ScalarType > & | A, | |||
| const Teuchos::SerialDenseMatrix< int, ScalarType > & | B, | |||
| ScalarType | beta | |||
| ) | [pure virtual] |
| virtual void Anasazi::MultiVec< ScalarType >::MvAddMv | ( | ScalarType | alpha, | |
| const MultiVec< ScalarType > & | A, | |||
| ScalarType | beta, | |||
| const MultiVec< ScalarType > & | B | |||
| ) | [pure virtual] |
| virtual void Anasazi::MultiVec< ScalarType >::MvTransMv | ( | 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 Anasazi::EpetraMultiVec.
| virtual void Anasazi::MultiVec< ScalarType >::MvDot | ( | const MultiVec< ScalarType > & | A, | |
| std::vector< ScalarType > & | b | |||
| ) | const [pure virtual] |
Compute a vector b where the components are the individual dot-products, i.e.b[i] = A[i]^H*this[i] where A[i] is the i-th column of A.
Implemented in Anasazi::EpetraMultiVec.
| virtual void Anasazi::MultiVec< ScalarType >::MvNorm | ( | std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > & | normvec | ) | const [pure virtual] |
Compute the 2-norm of each individual vector of *this. Upon return, normvec[i] holds the 2-norm of the i-th vector of *this.
| virtual void Anasazi::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 Anasazi::EpetraMultiVec.
| virtual void Anasazi::MultiVec< ScalarType >::MvScale | ( | ScalarType | alpha | ) | [pure virtual] |
| virtual void Anasazi::MultiVec< ScalarType >::MvScale | ( | const std::vector< ScalarType > & | alpha | ) | [pure virtual] |
Scale each element of the i-th vector in *this with alpha[i].
Implemented in Anasazi::EpetraMultiVec.
| virtual void Anasazi::MultiVec< ScalarType >::MvRandom | ( | ) | [pure virtual] |
| virtual void Anasazi::MultiVec< ScalarType >::MvInit | ( | ScalarType | alpha | ) | [pure virtual] |
| virtual void Anasazi::MultiVec< ScalarType >::MvPrint | ( | std::ostream & | os | ) | const [pure virtual] |
1.4.7