Belos::MultiVecTraits< ScalarType, MV > Class Template Reference

Virtual base class which defines basic traits for the multi-vector type. More...

#include <BelosMultiVecTraits.hpp>

List of all members.

Static Public Member Functions

Creation methods
static Teuchos::RCP< MV > Clone (const MV &mv, const int numvecs)
 Creates a new empty MV containing numvecs columns.
static Teuchos::RCP< MV > CloneCopy (const MV &mv)
 Creates a new MV and copies contents of mv into the new vector (deep copy).
static Teuchos::RCP< MV > CloneCopy (const MV &mv, const std::vector< int > &index)
 Creates a new MV and copies the selected contents of mv into the new vector (deep copy).
static Teuchos::RCP< MV > CloneView (MV &mv, const std::vector< int > &index)
 Creates a new MV that shares the selected contents of mv (shallow copy).
static Teuchos::RCP< const
MV > 
CloneView (const MV &mv, const std::vector< int > &index)
 Creates a new const MV that shares the selected contents of mv (shallow copy).
Attribute methods
static int GetVecLength (const MV &mv)
 Obtain the vector length of mv.
static int GetNumberVecs (const MV &mv)
 Obtain the number of vectors in mv.
Update methods
static void MvTimesMatAddMv (const ScalarType alpha, const MV &A, const Teuchos::SerialDenseMatrix< int, ScalarType > &B, const ScalarType beta, MV &mv)
 Update mv with $ \alpha AB + \beta mv $.
static void MvAddMv (const ScalarType alpha, const MV &A, const ScalarType beta, const MV &B, MV &mv)
 Replace mv with $\alpha A + \beta B$.
static void MvScale (MV &mv, const ScalarType alpha)
 Scale each element of the vectors in mv with alpha.
static void MvScale (MV &mv, const std::vector< ScalarType > &alpha)
 Scale each element of the i-th vector in mv with alpha[i].
static void MvTransMv (const ScalarType alpha, const MV &A, const MV &mv, Teuchos::SerialDenseMatrix< int, ScalarType > &B)
 Compute a dense matrix B through the matrix-matrix multiply $ \alpha A^Hmv $.
static void MvDot (const MV &mv, const MV &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]^Hmv[i]$.
Norm method
static void MvNorm (const MV &mv, std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &normvec, NormType type=TwoNorm)
 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.
Initialization methods
static void SetBlock (const MV &A, const std::vector< int > &index, MV &mv)
 Copy the vectors in A to a set of vectors in mv indicated by the indices given in index.
static void MvRandom (MV &mv)
 Replace the vectors in mv with random vectors.
static void MvInit (MV &mv, const ScalarType alpha=Teuchos::ScalarTraits< ScalarType >::zero())
 Replace each element of the vectors in mv with alpha.
Print method
static void MvPrint (const MV &mv, std::ostream &os)
 Print the mv multi-vector to the os output stream.


Detailed Description

template<class ScalarType, class MV>
class Belos::MultiVecTraits< ScalarType, MV >

Virtual base class which defines basic traits for the multi-vector type.

An adapter for this traits class must exist for the MV type. If not, this class will produce a compile-time error.

Definition at line 64 of file BelosMultiVecTraits.hpp.


Member Function Documentation

template<class ScalarType, class MV>
static Teuchos::RCP<MV> Belos::MultiVecTraits< ScalarType, MV >::Clone ( const MV &  mv,
const int  numvecs 
) [inline, static]

Creates a new empty MV containing numvecs columns.

Returns:
Reference-counted pointer to the new multivector of type MV.

Definition at line 75 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static Teuchos::RCP<MV> Belos::MultiVecTraits< ScalarType, MV >::CloneCopy ( const MV &  mv  )  [inline, static]

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

Returns:
Reference-counted pointer to the new multivector of type MV.

Definition at line 82 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static Teuchos::RCP<MV> Belos::MultiVecTraits< ScalarType, MV >::CloneCopy ( const MV &  mv,
const std::vector< int > &  index 
) [inline, static]

Creates a new MV 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 multivector of type MV.

Definition at line 90 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static Teuchos::RCP<MV> Belos::MultiVecTraits< ScalarType, MV >::CloneView ( MV &  mv,
const std::vector< int > &  index 
) [inline, static]

Creates a new MV 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 multivector of type MV.

Definition at line 98 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static Teuchos::RCP<const MV> Belos::MultiVecTraits< ScalarType, MV >::CloneView ( const MV &  mv,
const std::vector< int > &  index 
) [inline, static]

Creates a new const MV 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 multivector of type MV.

Definition at line 106 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static int Belos::MultiVecTraits< ScalarType, MV >::GetVecLength ( const MV &  mv  )  [inline, static]

Obtain the vector length of mv.

Definition at line 115 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static int Belos::MultiVecTraits< ScalarType, MV >::GetNumberVecs ( const MV &  mv  )  [inline, static]

Obtain the number of vectors in mv.

Definition at line 119 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static void Belos::MultiVecTraits< ScalarType, MV >::MvTimesMatAddMv ( const ScalarType  alpha,
const MV &  A,
const Teuchos::SerialDenseMatrix< int, ScalarType > &  B,
const ScalarType  beta,
MV &  mv 
) [inline, static]

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

Definition at line 129 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static void Belos::MultiVecTraits< ScalarType, MV >::MvAddMv ( const ScalarType  alpha,
const MV &  A,
const ScalarType  beta,
const MV &  B,
MV &  mv 
) [inline, static]

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

Definition at line 136 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static void Belos::MultiVecTraits< ScalarType, MV >::MvScale ( MV &  mv,
const ScalarType  alpha 
) [inline, static]

Scale each element of the vectors in mv with alpha.

Definition at line 141 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static void Belos::MultiVecTraits< ScalarType, MV >::MvScale ( MV &  mv,
const std::vector< ScalarType > &  alpha 
) [inline, static]

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

Definition at line 146 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static void Belos::MultiVecTraits< ScalarType, MV >::MvTransMv ( const ScalarType  alpha,
const MV &  A,
const MV &  mv,
Teuchos::SerialDenseMatrix< int, ScalarType > &  B 
) [inline, static]

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

Definition at line 151 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static void Belos::MultiVecTraits< ScalarType, MV >::MvDot ( const MV &  mv,
const MV &  A,
std::vector< ScalarType > &  b 
) [inline, static]

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]^Hmv[i]$.

Definition at line 156 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static void Belos::MultiVecTraits< ScalarType, MV >::MvNorm ( const MV &  mv,
std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &  normvec,
NormType  type = TwoNorm 
) [inline, static]

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 166 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static void Belos::MultiVecTraits< ScalarType, MV >::SetBlock ( const MV &  A,
const std::vector< int > &  index,
MV &  mv 
) [inline, static]

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 178 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static void Belos::MultiVecTraits< ScalarType, MV >::MvRandom ( MV &  mv  )  [inline, static]

Replace the vectors in mv with random vectors.

Definition at line 183 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static void Belos::MultiVecTraits< ScalarType, MV >::MvInit ( MV &  mv,
const ScalarType  alpha = Teuchos::ScalarTraits<ScalarType>::zero() 
) [inline, static]

Replace each element of the vectors in mv with alpha.

Definition at line 188 of file BelosMultiVecTraits.hpp.

template<class ScalarType, class MV>
static void Belos::MultiVecTraits< ScalarType, MV >::MvPrint ( const MV &  mv,
std::ostream &  os 
) [inline, static]

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

Definition at line 198 of file BelosMultiVecTraits.hpp.


The documentation for this class was generated from the following file:
Generated on Wed May 12 21:30:10 2010 for Belos by  doxygen 1.4.7