#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.
Definition at line 53 of file AnasaziMultiVec.hpp.
Anasazi::MultiVec< ScalarType >::MultiVec | ( | ) | [inline] |
virtual Anasazi::MultiVec< ScalarType >::~MultiVec | ( | ) | [inline, virtual] |
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 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 >::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 >::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 >::GetNumberVecs | ( | ) | const [pure virtual] |
virtual int Anasazi::MultiVec< ScalarType >::GetVecLength | ( | ) | const [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 >::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 >::MvInit | ( | ScalarType | alpha | ) | [pure virtual] |
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 >::MvPrint | ( | std::ostream & | os | ) | const [pure virtual] |
virtual void Anasazi::MultiVec< ScalarType >::MvRandom | ( | ) | [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 >::MvScale | ( | ScalarType | alpha | ) | [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 >::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 >::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.