Collection of standard multi-vector operations with text names.
[Collection of multi-vector operations for all scalar types.]


Functions

template<class Scalar>
void Thyra::norms (const MultiVectorBase< Scalar > &V, typename Teuchos::ScalarTraits< Scalar >::magnitudeType norms[])
 Column-wise multi-vector natural norm.
template<class Scalar, class NormOp>
void Thyra::reductions (const MultiVectorBase< Scalar > &V, const NormOp &op, typename Teuchos::ScalarTraits< Scalar >::magnitudeType norms[])
 Column-wise multi-vector reductions.
template<class Scalar>
void Thyra::norms_1 (const MultiVectorBase< Scalar > &V, typename Teuchos::ScalarTraits< Scalar >::magnitudeType norms[])
 Column-wise multi-vector one norm.
template<class Scalar>
void Thyra::norms_2 (const MultiVectorBase< Scalar > &V, typename Teuchos::ScalarTraits< Scalar >::magnitudeType norms[])
 Column-wise multi-vector 2 (Euclidean) norm.
template<class Scalar>
void Thyra::norms_inf (const MultiVectorBase< Scalar > &V, typename Teuchos::ScalarTraits< Scalar >::magnitudeType norms[])
 Column-wise multi-vector infinity norm.
template<class Scalar>
void Thyra::dots (const MultiVectorBase< Scalar > &V1, const MultiVectorBase< Scalar > &V2, Scalar dots[])
 Multi-vector dot product.
template<class Scalar>
void Thyra::sums (const MultiVectorBase< Scalar > &V, Scalar sums[])
 Multi-vector column sum.
template<class Scalar>
Teuchos::ScalarTraits< Scalar
>::magnitudeType 
Thyra::norm_1 (const MultiVectorBase< Scalar > &V)
 Take the induced matrix one norm of a multi-vector.
template<class Scalar>
void Thyra::scale (Scalar alpha, MultiVectorBase< Scalar > *V)
 V = alpha*V.
template<class Scalar>
void Thyra::scaleUpdate (const VectorBase< Scalar > &a, const MultiVectorBase< Scalar > &U, MultiVectorBase< Scalar > *V)
 A*U + V -> V (where A is a diagonal matrix with diagonal a).
template<class Scalar>
void Thyra::assign (MultiVectorBase< Scalar > *V, Scalar alpha)
 V = alpha.
template<class Scalar>
void Thyra::assign (MultiVectorBase< Scalar > *V, const MultiVectorBase< Scalar > &U)
 V = U.
template<class Scalar>
void Thyra::update (Scalar alpha, const MultiVectorBase< Scalar > &U, MultiVectorBase< Scalar > *V)
 alpha*U + V -> V
template<class Scalar>
void Thyra::update (Scalar alpha[], Scalar beta, const MultiVectorBase< Scalar > &U, MultiVectorBase< Scalar > *V)
 alpha[j-1]*beta*U(j) + V(j) - > V(j), for j = 0 ... U.domain()->dim()-1
template<class Scalar>
void Thyra::update (const MultiVectorBase< Scalar > &U, Scalar alpha[], Scalar beta, MultiVectorBase< Scalar > *V)
 U(j) + alpha[j-1]*beta*V(j) - > V(j), for j = 0 ... U.domain()->dim()-1.
template<class Scalar>
void Thyra::linear_combination (const int m, const Scalar alpha[], const MultiVectorBase< Scalar > *X[], const Scalar &beta, MultiVectorBase< Scalar > *Y)
 Y.col(j)(i) = beta*Y.col(j)(i) + sum( alpha[k]*X[k].col(j)(i), k=0...m-1 ), for i = 0...Y->range()->dim()-1, j = 0...Y->domain()->dim()-1.
template<class Scalar>
void Thyra::randomize (Scalar l, Scalar u, MultiVectorBase< Scalar > *V)
 Generate a random multi-vector with elements uniformly distributed elements.

Function Documentation

template<class Scalar>
void Thyra::norms const MultiVectorBase< Scalar > &  V,
typename Teuchos::ScalarTraits< Scalar >::magnitudeType  norms[]
 

Column-wise multi-vector natural norm.

Parameters:
V [in]
norms [out] Array (size m = V1->domain()->dim()) of the natural norms dot[j] = sqrt(scalarProd(*V.col(j),*V.col(j))), for j=0...m-1, computed using a single reduction.

Definition at line 48 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar, class NormOp>
void Thyra::reductions const MultiVectorBase< Scalar > &  V,
const NormOp &  op,
typename Teuchos::ScalarTraits< Scalar >::magnitudeType  norms[]
 

Column-wise multi-vector reductions.

Parameters:
V [in]
normOp [in] A reduction operator consistent with the interface to RTOpPack::ROpScalarReductionBase that defines the norm operation.
norms [out] Array (size m = V1->domain()->dim()) of one-norms dot[j] = {some norm}(*V.col(j)), for j=0...m-1, computed using a single reduction.

Definition at line 59 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::norms_1 const MultiVectorBase< Scalar > &  V,
typename Teuchos::ScalarTraits< Scalar >::magnitudeType  norms[]
[inline]
 

Column-wise multi-vector one norm.

Parameters:
V [in]
norms [out] Array (size m = V1->domain()->dim()) of one-norms dot[j] = norm_1(*V.col(j)), for j=0...m-1, computed using a single reduction.
This function simply calls reductions() using RTOpPack::ROpNorm1.

Definition at line 257 of file Thyra_MultiVectorStdOpsDecl.hpp.

template<class Scalar>
void Thyra::norms_2 const MultiVectorBase< Scalar > &  V,
typename Teuchos::ScalarTraits< Scalar >::magnitudeType  norms[]
[inline]
 

Column-wise multi-vector 2 (Euclidean) norm.

Parameters:
V [in]
norms [out] Array (size m = V1->domain()->dim()) of one-norms dot[j] = norm_2(*V.col(j)), for j=0...m-1, computed using a single reduction.
This function simply calls reductions() using RTOpPack::ROpNorm2.

Definition at line 264 of file Thyra_MultiVectorStdOpsDecl.hpp.

template<class Scalar>
void Thyra::norms_inf const MultiVectorBase< Scalar > &  V,
typename Teuchos::ScalarTraits< Scalar >::magnitudeType  norms[]
[inline]
 

Column-wise multi-vector infinity norm.

Parameters:
V [in]
norms [out] Array (size m = V1->domain()->dim()) of one-norms dot[j] = norm_inf(*V.col(j)), for j=0...m-1, computed using a single reduction.
This function simply calls reductions() using RTOpPack::ROpNormInf.

Definition at line 271 of file Thyra_MultiVectorStdOpsDecl.hpp.

template<class Scalar>
void Thyra::dots const MultiVectorBase< Scalar > &  V1,
const MultiVectorBase< Scalar > &  V2,
Scalar  dots[]
 

Multi-vector dot product.

Parameters:
V1 [in]
V2 [in]
dots [out] Array (size m = V1->domain()->dim()) of the dot products dot[j] = dot(*V1.col(j),*V2.col(j)), for j=0...m-1, computed using a single reduction.

Definition at line 77 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::sums const MultiVectorBase< Scalar > &  V,
Scalar  sums[]
 

Multi-vector column sum.

Parameters:
V [in]
sums [outt] Array (size m = V->domain()->dim()) of the sums products sum[j] = sum(*V.col(j)), for j=0...m-1, computed using a single reduction.

Definition at line 96 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
Teuchos::ScalarTraits< Scalar >::magnitudeType Thyra::norm_1 const MultiVectorBase< Scalar > &  V  ) 
 

Take the induced matrix one norm of a multi-vector.

Parameters:
V [in] Input multi-vector
Returns a scalar.

Definition at line 116 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::scale Scalar  alpha,
MultiVectorBase< Scalar > *  V
 

V = alpha*V.

Note, if alpha==0.0, then V=alpha is performed and if alpha==1.0, then nothing is done.

Definition at line 133 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::scaleUpdate const VectorBase< Scalar > &  a,
const MultiVectorBase< Scalar > &  U,
MultiVectorBase< Scalar > *  V
 

A*U + V -> V (where A is a diagonal matrix with diagonal a).

Definition at line 155 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::assign MultiVectorBase< Scalar > *  V,
Scalar  alpha
 

V = alpha.

Definition at line 179 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::assign MultiVectorBase< Scalar > *  V,
const MultiVectorBase< Scalar > &  U
 

V = U.

Definition at line 193 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::update Scalar  alpha,
const MultiVectorBase< Scalar > &  U,
MultiVectorBase< Scalar > *  V
 

alpha*U + V -> V

Definition at line 208 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::update Scalar  alpha[],
Scalar  beta,
const MultiVectorBase< Scalar > &  U,
MultiVectorBase< Scalar > *  V
 

alpha[j-1]*beta*U(j) + V(j) - > V(j), for j = 0 ... U.domain()->dim()-1

Definition at line 220 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::update const MultiVectorBase< Scalar > &  U,
Scalar  alpha[],
Scalar  beta,
MultiVectorBase< Scalar > *  V
 

U(j) + alpha[j-1]*beta*V(j) - > V(j), for j = 0 ... U.domain()->dim()-1.

Definition at line 240 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::linear_combination const int  m,
const Scalar  alpha[],
const MultiVectorBase< Scalar > *  X[],
const Scalar &  beta,
MultiVectorBase< Scalar > *  Y
 

Y.col(j)(i) = beta*Y.col(j)(i) + sum( alpha[k]*X[k].col(j)(i), k=0...m-1 ), for i = 0...Y->range()->dim()-1, j = 0...Y->domain()->dim()-1.

Parameters:
m [in] Number of multi-vectors in X[]
alpha [in] Array (length m) of input scalars.
X [in] Array (length m) of input multi-vectors.
beta [in] Scalar multiplier for Y
Y [in/out] Target multi-vector that is the result of the linear combination.
This function implements a general linear combination:
 Y.col(j)(i) = beta*Y.col(j)(i) + alpha[0]*X[0].col(j)(i) + alpha[1]*X[1].col(j)(i) + ... + alpha[m-1]*X[m-1].col(j)(i)

    for:
        i = 0...y->space()->dim()-1
        j = 0...y->domain()->dim()-1

 
and does so on a single call to MultiVectorBase::applyOp().

Definition at line 261 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::randomize Scalar  l,
Scalar  u,
MultiVectorBase< Scalar > *  V
 

Generate a random multi-vector with elements uniformly distributed elements.

The elements get_ele(*V->col(j)) are randomly generated between [l,u].

The seed is set using seed_randomize()

Definition at line 286 of file Thyra_MultiVectorStdOps.hpp.


Generated on Thu Sep 18 12:33:10 2008 for Thyra Package Browser (Single Doxygen Collection) by doxygen 1.3.9.1