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

Collaboration diagram for Collection of standard multi-vector operations with text names.:


Functions

template<class Scalar>
void Thyra::norms (const MultiVectorBase< Scalar > &V, const ArrayView< typename 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, const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms)
 Column-wise multi-vector reductions.
template<class Scalar>
void Thyra::norms_1 (const MultiVectorBase< Scalar > &V, const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms)
 Column-wise multi-vector one norm.
template<class Scalar>
void Thyra::norms_2 (const MultiVectorBase< Scalar > &V, const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms)
 Column-wise multi-vector 2 (Euclidean) norm.
template<class Scalar>
void Thyra::norms_inf (const MultiVectorBase< Scalar > &V, const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms)
 Column-wise multi-vector infinity norm.
template<class Scalar>
Array< typename ScalarTraits<
Scalar >::magnitudeType > 
Thyra::norms_inf (const MultiVectorBase< Scalar > &V)
 Column-wise multi-vector infinity norm.
template<class Scalar>
void Thyra::dots (const MultiVectorBase< Scalar > &V1, const MultiVectorBase< Scalar > &V2, const ArrayView< Scalar > &dots)
 Multi-vector dot product.
template<class Scalar>
void Thyra::sums (const MultiVectorBase< Scalar > &V, const ArrayView< 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, const Ptr< MultiVectorBase< Scalar > > &V)
 V = alpha*V.
template<class Scalar>
void Thyra::scaleUpdate (const VectorBase< Scalar > &a, const MultiVectorBase< Scalar > &U, const Ptr< MultiVectorBase< Scalar > > &V)
 A*U + V -> V (where A is a diagonal matrix with diagonal a).
template<class Scalar>
void Thyra::assign (const Ptr< MultiVectorBase< Scalar > > &V, Scalar alpha)
 V = alpha.
template<class Scalar>
void Thyra::assign (const Ptr< MultiVectorBase< Scalar > > &V, const MultiVectorBase< Scalar > &U)
 V = U.
template<class Scalar>
void Thyra::update (Scalar alpha, const MultiVectorBase< Scalar > &U, const Ptr< MultiVectorBase< Scalar > > &V)
 alpha*U + V -> V
template<class Scalar>
void Thyra::update (const ArrayView< const Scalar > &alpha, Scalar beta, const MultiVectorBase< Scalar > &U, const Ptr< MultiVectorBase< Scalar > > &V)
 alpha[j]*beta*U(j) + V(j) - > V(j), for j = 0 ,,, U.domain()->dim()-1.
template<class Scalar>
void Thyra::update (const MultiVectorBase< Scalar > &U, const ArrayView< const Scalar > &alpha, Scalar beta, const Ptr< MultiVectorBase< Scalar > > &V)
 U(j) + alpha[j]*beta*V(j) - > V(j), for j = 0 ,,, U.domain()->dim()-1.
template<class Scalar>
void Thyra::linear_combination (const ArrayView< const Scalar > &alpha, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &X, const Scalar &beta, const Ptr< 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, const Ptr< 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,
const ArrayView< typename 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 52 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar, class NormOp>
void Thyra::reductions ( const MultiVectorBase< Scalar > &  V,
const NormOp &  op,
const ArrayView< typename 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 65 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::norms_1 ( const MultiVectorBase< Scalar > &  V,
const ArrayView< typename 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 466 of file Thyra_MultiVectorStdOpsDecl.hpp.

template<class Scalar>
void Thyra::norms_2 ( const MultiVectorBase< Scalar > &  V,
const ArrayView< typename 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 475 of file Thyra_MultiVectorStdOpsDecl.hpp.

template<class Scalar>
void Thyra::norms_inf ( const MultiVectorBase< Scalar > &  V,
const ArrayView< typename 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 484 of file Thyra_MultiVectorStdOpsDecl.hpp.

template<class Scalar>
Array<typename ScalarTraits<Scalar>::magnitudeType> Thyra::norms_inf ( const MultiVectorBase< Scalar > &  V  ) 

Column-wise multi-vector infinity norm.

Definition at line 493 of file Thyra_MultiVectorStdOpsDecl.hpp.

template<class Scalar>
void Thyra::dots ( const MultiVectorBase< Scalar > &  V1,
const MultiVectorBase< Scalar > &  V2,
const ArrayView< 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 86 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::sums ( const MultiVectorBase< Scalar > &  V,
const ArrayView< 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 108 of file Thyra_MultiVectorStdOps.hpp.

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

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

Definition at line 128 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::scale ( Scalar  alpha,
const Ptr< MultiVectorBase< Scalar > > &  V 
)

V = alpha*V.

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

Examples:
exampleImplicitlyComposedLinearOperators.cpp, and test_composite_linear_ops.cpp.

Definition at line 146 of file Thyra_MultiVectorStdOps.hpp.

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

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

Definition at line 165 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::assign ( const Ptr< MultiVectorBase< Scalar > > &  V,
Scalar  alpha 
)

V = alpha.

Examples:
test_product_space.cpp, and test_scalar_product.cpp.

Definition at line 190 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::assign ( const Ptr< MultiVectorBase< Scalar > > &  V,
const MultiVectorBase< Scalar > &  U 
)

V = U.

Definition at line 201 of file Thyra_MultiVectorStdOps.hpp.

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

alpha*U + V -> V

Examples:
sillyModifiedGramSchmidt.hpp.

Definition at line 211 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::update ( const ArrayView< const Scalar > &  alpha,
Scalar  beta,
const MultiVectorBase< Scalar > &  U,
const Ptr< MultiVectorBase< Scalar > > &  V 
)

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

Definition at line 221 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::update ( const MultiVectorBase< Scalar > &  U,
const ArrayView< const Scalar > &  alpha,
Scalar  beta,
const Ptr< MultiVectorBase< Scalar > > &  V 
)

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

Definition at line 241 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::linear_combination ( const ArrayView< const Scalar > &  alpha,
const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &  X,
const Scalar &  beta,
const Ptr< 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:
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 264 of file Thyra_MultiVectorStdOps.hpp.

template<class Scalar>
void Thyra::randomize ( Scalar  l,
Scalar  u,
const Ptr< 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()

Examples:
exampleImplicitlyComposedLinearOperators.cpp, sillyCgSolve_mpi.cpp, sillyCgSolve_serial.cpp, sillyPowerMethod.hpp, test_composite_linear_ops.cpp, and test_scalar_product.cpp.

Definition at line 290 of file Thyra_MultiVectorStdOps.hpp.


Generated on Wed May 12 21:26:56 2010 for Thyra Operator/Vector Support by  doxygen 1.4.7