Anasazi::MultiVec< ScalarType > Class Template Reference

Anasazi's templated virtual class for constructing a multi-vector that can interface with the Anasazi::MultiVecTraits class used by the eigensolvers. More...

#include <AnasaziMultiVec.hpp>

Inheritance diagram for Anasazi::MultiVec< ScalarType >:

[legend]
List of all members.

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 (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 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 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< ScalarType > *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 MvRandom ()=0
 Fill the vectors in *this with random numbers.
virtual void MvInit (const ScalarType alpha)=0
 Replace each element of the vectors in *this with alpha.
Print method.
virtual void MvPrint (ostream &os) const =0
 Print *this multivector to the os output stream.

Detailed Description

template<class ScalarType>
class Anasazi::MultiVec< ScalarType >

Anasazi's templated virtual class for constructing a multi-vector that can interface with the Anasazi::MultiVecTraits class used by the eigensolvers.

A concrete implementation of this class is necessary. The user can create their own implementation if those supplied are not suitable for their needs.

Author:
Ulrich Hetmaniuk, Rich Lehoucq, and Heidi Thornquist


Member Function Documentation

template<class ScalarType>
virtual MultiVec<ScalarType>* Anasazi::MultiVec< ScalarType >::Clone const int  numvecs  )  const [pure virtual]
 

Creates a new empty Anasazi::MultiVec containing numvecs columns.

Returns:
Pointer to the new multivector

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
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.

Returns:
Pointer to the new multivector

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
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).

Returns:
Pointer to the new multivector

Implemented in Anasazi::EpetraMultiVec.

template<class ScalarType>
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.

Returns:
Pointer to the new multivector

Implemented in Anasazi::EpetraMultiVec.


The documentation for this class was generated from the following file:
Generated on Thu Sep 18 12:39:31 2008 for Anasazi by doxygen 1.3.9.1