Anasazi  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
List of all members
Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > > Class Template Reference

Specialization of MultiVecTraits for Belos::MultiVec. More...

#include <AnasaziMultiVec.hpp>

Static Public Member Functions

Creation methods
static Teuchos::RCP< MultiVec
< ScalarType > > 
Clone (const MultiVec< ScalarType > &mv, const int numvecs)
 Create a new empty MultiVec containing numvecs columns. More...
 
static Teuchos::RCP< MultiVec
< ScalarType > > 
CloneCopy (const MultiVec< ScalarType > &mv)
 Creates a new Anasazi::MultiVec and copies contents of mv into the new vector (deep copy). More...
 
static Teuchos::RCP< MultiVec
< ScalarType > > 
CloneCopy (const MultiVec< ScalarType > &mv, const std::vector< int > &index)
 Creates a new Anasazi::MultiVec and copies the selected contents of mv into the new vector (deep copy). More...
 
static Teuchos::RCP< MultiVec
< ScalarType > > 
CloneViewNonConst (MultiVec< ScalarType > &mv, const std::vector< int > &index)
 Creates a new Anasazi::MultiVec that shares the selected contents of mv (shallow copy). More...
 
static Teuchos::RCP< const
MultiVec< ScalarType > > 
CloneView (const MultiVec< ScalarType > &mv, const std::vector< int > &index)
 Creates a new const Anasazi::MultiVec that shares the selected contents of mv (shallow copy). More...
 
Attribute methods
static ptrdiff_t GetGlobalLength (const MultiVec< ScalarType > &mv)
 Obtain the vector length of mv. More...
 
static int GetNumberVecs (const MultiVec< ScalarType > &mv)
 Obtain the number of vectors in mv. More...
 
Update methods
static void MvTimesMatAddMv (ScalarType alpha, const MultiVec< ScalarType > &A, const Teuchos::SerialDenseMatrix< int, ScalarType > &B, ScalarType beta, MultiVec< ScalarType > &mv)
 Update mv with $ \alpha AB + \beta mv $. More...
 
static void MvAddMv (ScalarType alpha, const MultiVec< ScalarType > &A, ScalarType beta, const MultiVec< ScalarType > &B, MultiVec< ScalarType > &mv)
 Replace mv with $\alpha A + \beta B$. More...
 
static void MvTransMv (ScalarType alpha, const MultiVec< ScalarType > &A, const MultiVec< ScalarType > &mv, Teuchos::SerialDenseMatrix< int, ScalarType > &B)
 Compute a dense matrix B through the matrix-matrix multiply $ \alpha A^Tmv $. More...
 
static void MvDot (const MultiVec< ScalarType > &mv, const MultiVec< ScalarType > &A, std::vector< ScalarType > &b)
 Compute a vector b where the components are the individual dot-products of the i-th columns of A and mv, i.e. $b[i] = A[i]^H mv[i]$. More...
 
static void MvScale (MultiVec< ScalarType > &mv, ScalarType alpha)
 Scale each element of the vectors in *this with alpha. More...
 
static void MvScale (MultiVec< ScalarType > &mv, const std::vector< ScalarType > &alpha)
 Scale each element of the i-th vector in *this with alpha[i]. More...
 
Norm method
static void MvNorm (const MultiVec< ScalarType > &mv, std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &normvec)
 Compute the 2-norm of each individual vector of mv. Upon return, normvec[i] holds the value of $||mv_i||_2$, the i-th column of mv. More...
 
Initialization methods
static void SetBlock (const MultiVec< ScalarType > &A, const std::vector< int > &index, MultiVec< ScalarType > &mv)
 Copy the vectors in A to a set of vectors in mv indicated by the indices given in index. More...
 
static void MvRandom (MultiVec< ScalarType > &mv)
 Replace the vectors in mv with random vectors. More...
 
static void MvInit (MultiVec< ScalarType > &mv, ScalarType alpha=Teuchos::ScalarTraits< ScalarType >::zero())
 Replace each element of the vectors in mv with alpha. More...
 
Print method
static void MvPrint (const MultiVec< ScalarType > &mv, std::ostream &os)
 Print the mv multi-vector to the os output stream. More...
 

Detailed Description

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

Specialization of MultiVecTraits for Belos::MultiVec.

Anasazi interfaces to every multivector implementation through a specialization of MultiVecTraits. Thus, we provide a specialization of MultiVecTraits for the MultiVec run-time polymorphic interface above.

Template Parameters
ScalarTypeThe type of entries in the multivector; the template parameter of MultiVec.

Definition at line 361 of file AnasaziMultiVec.hpp.

Member Function Documentation

template<class ScalarType >
static Teuchos::RCP<MultiVec<ScalarType> > Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::Clone ( const MultiVec< ScalarType > &  mv,
const int  numvecs 
)
inlinestatic

Create a new empty MultiVec containing numvecs columns.

Returns
Reference-counted pointer to the new MultiVec.

Definition at line 369 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static Teuchos::RCP<MultiVec<ScalarType> > Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::CloneCopy ( const MultiVec< ScalarType > &  mv)
inlinestatic

Creates a new Anasazi::MultiVec and copies contents of mv into the new vector (deep copy).

Returns
Reference-counted pointer to the new Anasazi::MultiVec.

Definition at line 377 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static Teuchos::RCP<MultiVec<ScalarType> > Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::CloneCopy ( const MultiVec< ScalarType > &  mv,
const std::vector< int > &  index 
)
inlinestatic

Creates a new Anasazi::MultiVec and copies the selected contents of mv into the new vector (deep copy).

The copied vectors from mv are indicated by the index.size() indices in index.

Returns
Reference-counted pointer to the new Anasazi::MultiVec.

Definition at line 385 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static Teuchos::RCP<MultiVec<ScalarType> > Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::CloneViewNonConst ( MultiVec< ScalarType > &  mv,
const std::vector< int > &  index 
)
inlinestatic

Creates a new Anasazi::MultiVec that shares the selected contents of mv (shallow copy).

The index of the numvecs vectors shallow copied from mv are indicated by the indices given in index.

Returns
Reference-counted pointer to the new Anasazi::MultiVec.

Definition at line 393 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static Teuchos::RCP<const MultiVec<ScalarType> > Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::CloneView ( const MultiVec< ScalarType > &  mv,
const std::vector< int > &  index 
)
inlinestatic

Creates a new const Anasazi::MultiVec that shares the selected contents of mv (shallow copy).

The index of the numvecs vectors shallow copied from mv are indicated by the indices given in index.

Returns
Reference-counted pointer to the new const Anasazi::MultiVec.

Definition at line 401 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static ptrdiff_t Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::GetGlobalLength ( const MultiVec< ScalarType > &  mv)
inlinestatic

Obtain the vector length of mv.

Definition at line 410 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static int Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::GetNumberVecs ( const MultiVec< ScalarType > &  mv)
inlinestatic

Obtain the number of vectors in mv.

Definition at line 414 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static void Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::MvTimesMatAddMv ( ScalarType  alpha,
const MultiVec< ScalarType > &  A,
const Teuchos::SerialDenseMatrix< int, ScalarType > &  B,
ScalarType  beta,
MultiVec< ScalarType > &  mv 
)
inlinestatic

Update mv with $ \alpha AB + \beta mv $.

Definition at line 424 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static void Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::MvAddMv ( ScalarType  alpha,
const MultiVec< ScalarType > &  A,
ScalarType  beta,
const MultiVec< ScalarType > &  B,
MultiVec< ScalarType > &  mv 
)
inlinestatic

Replace mv with $\alpha A + \beta B$.

Definition at line 431 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static void Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::MvTransMv ( ScalarType  alpha,
const MultiVec< ScalarType > &  A,
const MultiVec< ScalarType > &  mv,
Teuchos::SerialDenseMatrix< int, ScalarType > &  B 
)
inlinestatic

Compute a dense matrix B through the matrix-matrix multiply $ \alpha A^Tmv $.

Definition at line 436 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static void Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::MvDot ( const MultiVec< ScalarType > &  mv,
const MultiVec< ScalarType > &  A,
std::vector< ScalarType > &  b 
)
inlinestatic

Compute a vector b where the components are the individual dot-products of the i-th columns of A and mv, i.e. $b[i] = A[i]^H mv[i]$.

Definition at line 449 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static void Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::MvScale ( MultiVec< ScalarType > &  mv,
ScalarType  alpha 
)
inlinestatic

Scale each element of the vectors in *this with alpha.

Definition at line 461 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static void Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::MvScale ( MultiVec< ScalarType > &  mv,
const std::vector< ScalarType > &  alpha 
)
inlinestatic

Scale each element of the i-th vector in *this with alpha[i].

Definition at line 465 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static void Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::MvNorm ( const MultiVec< ScalarType > &  mv,
std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &  normvec 
)
inlinestatic

Compute the 2-norm of each individual vector of mv. Upon return, normvec[i] holds the value of $||mv_i||_2$, the i-th column of mv.

Definition at line 475 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static void Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::SetBlock ( const MultiVec< ScalarType > &  A,
const std::vector< int > &  index,
MultiVec< ScalarType > &  mv 
)
inlinestatic

Copy the vectors in A to a set of vectors in mv indicated by the indices given in index.

The numvecs vectors in A are copied to a subset of vectors in mv indicated by the indices given in index, i.e. mv[index[i]] = A[i].

Definition at line 486 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static void Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::MvRandom ( MultiVec< ScalarType > &  mv)
inlinestatic

Replace the vectors in mv with random vectors.

Definition at line 491 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static void Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::MvInit ( MultiVec< ScalarType > &  mv,
ScalarType  alpha = Teuchos::ScalarTraits<ScalarType>::zero() 
)
inlinestatic

Replace each element of the vectors in mv with alpha.

Definition at line 496 of file AnasaziMultiVec.hpp.

template<class ScalarType >
static void Anasazi::MultiVecTraits< ScalarType, MultiVec< ScalarType > >::MvPrint ( const MultiVec< ScalarType > &  mv,
std::ostream &  os 
)
inlinestatic

Print the mv multi-vector to the os output stream.

Definition at line 504 of file AnasaziMultiVec.hpp.


The documentation for this class was generated from the following file: