|
(Note that these are not member symbols.)
|
template<class Scalar > |
RCP< DefaultProductMultiVector< Scalar > > | defaultProductMultiVector () |
| Nonmember constructor.
|
|
template<class Scalar > |
RCP< DefaultProductMultiVector< Scalar > > | defaultProductMultiVector (const RCP< const DefaultProductVectorSpace< Scalar > > &productSpace, const int numMembers) |
| Nonmember constructor.
|
|
template<class Scalar > |
RCP< DefaultProductMultiVector< Scalar > > | defaultProductMultiVector (const RCP< const DefaultProductVectorSpace< Scalar > > &productSpace, const ArrayView< const RCP< MultiVectorBase< Scalar > > > &multiVecs) |
| Nonmember constructor.
|
|
template<class Scalar > |
RCP< DefaultProductMultiVector< Scalar > > | defaultProductMultiVector (const RCP< const DefaultProductVectorSpace< Scalar > > &productSpace, const ArrayView< const RCP< const MultiVectorBase< Scalar > > > &multiVecs) |
| Nonmember constructor.
|
|
template<class Scalar > |
RCP< const ProductMultiVectorBase< Scalar > > | castOrCreateSingleBlockProductMultiVector (const RCP< const DefaultProductVectorSpace< Scalar > > &productSpace, const RCP< const MultiVectorBase< Scalar > > &mv) |
| Dynamic cast to a const product multi-vector or create a new product multi-vector with one component if the input multi-vector is not a product vector.
|
|
template<class Scalar > |
RCP< ProductMultiVectorBase< Scalar > > | nonconstCastOrCreateSingleBlockProductMultiVector (const RCP< const DefaultProductVectorSpace< Scalar > > &productSpace, const RCP< MultiVectorBase< Scalar > > &mv) |
| Dynamic cast to a const product multi-vector or create a new product multi-vector with one component if the input multi-vector is not a product vector.
|
|
template<class Scalar > |
void | applyOp (const RTOpPack::RTOpT< Scalar > &primary_op, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &multi_vecs, const ArrayView< const Ptr< MultiVectorBase< Scalar > > > &targ_multi_vecs, const ArrayView< const Ptr< RTOpPack::ReductTarget > > &reduct_objs, const Ordinal primary_global_offset=0) |
| Apply a reduction/transformation operator column by column and return an array of the reduction objects.
|
|
template<class Scalar > |
void | applyOp (const RTOpPack::RTOpT< Scalar > &primary_op, const RTOpPack::RTOpT< Scalar > &secondary_op, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &multi_vecs, const ArrayView< const Ptr< MultiVectorBase< Scalar > > > &targ_multi_vecs, const Ptr< RTOpPack::ReductTarget > &reduct_obj, const Ordinal primary_global_offset=0) |
| Apply a reduction/transformation operator column by column and reduce the intermediate reduction objects into one reduction object.
|
|
template<class Scalar > |
void | norms (const MultiVectorBase< Scalar > &V, const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) |
| Column-wise multi-vector natural norm.
|
|
template<class Scalar , class NormOp > |
void | reductions (const MultiVectorBase< Scalar > &V, const NormOp &op, const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) |
| Column-wise multi-vector reductions.
|
|
template<class Scalar > |
void | norms_1 (const MultiVectorBase< Scalar > &V, const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) |
| Column-wise multi-vector one norm.
|
|
template<class Scalar > |
void | norms_2 (const MultiVectorBase< Scalar > &V, const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) |
| Column-wise multi-vector 2 (Euclidean) norm.
|
|
template<class Scalar > |
void | 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 > | norms_inf (const MultiVectorBase< Scalar > &V) |
| Column-wise multi-vector infinity norm.
|
|
template<class Scalar > |
void | dots (const MultiVectorBase< Scalar > &V1, const MultiVectorBase< Scalar > &V2, const ArrayView< Scalar > &dots) |
| Multi-vector dot product.
|
|
template<class Scalar > |
void | sums (const MultiVectorBase< Scalar > &V, const ArrayView< Scalar > &sums) |
| Multi-vector column sum.
|
|
template<class Scalar > |
ScalarTraits< Scalar >::magnitudeType | norm_1 (const MultiVectorBase< Scalar > &V) |
| Take the induced matrix one norm of a multi-vector.
|
|
template<class Scalar > |
void | scale (Scalar alpha, const Ptr< MultiVectorBase< Scalar > > &V) |
| V = alpha*V.
|
|
template<class Scalar > |
void | 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 | assign (const Ptr< MultiVectorBase< Scalar > > &V, Scalar alpha) |
| V = alpha.
|
|
template<class Scalar > |
void | assign (const Ptr< MultiVectorBase< Scalar > > &V, const MultiVectorBase< Scalar > &U) |
| V = U.
|
|
template<class Scalar > |
void | update (Scalar alpha, const MultiVectorBase< Scalar > &U, const Ptr< MultiVectorBase< Scalar > > &V) |
| alpha*U + V -> V.
|
|
template<class Scalar > |
void | 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 ,,,
|
|
template<class Scalar > |
void | 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 | 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 | randomize (Scalar l, Scalar u, const Ptr< MultiVectorBase< Scalar > > &V) |
| Generate a random multi-vector with elements uniformly distributed elements.
|
|
template<class Scalar > |
void | Vt_S (const Ptr< MultiVectorBase< Scalar > > &Z, const Scalar &alpha) |
| Z(i,j) *= alpha, i = 0...Z->range()->dim()-1, j = 0...Z->domain()->dim()-1 .
|
|
template<class Scalar > |
void | Vp_S (const Ptr< MultiVectorBase< Scalar > > &Z, const Scalar &alpha) |
| Z(i,j) += alpha, i = 0...Z->range()->dim()-1, j = 0...Z->domain()->dim()-1 .
|
|
template<class Scalar > |
void | Vp_V (const Ptr< MultiVectorBase< Scalar > > &Z, const MultiVectorBase< Scalar > &X) |
| Z(i,j) += X(i,j), i = 0...Z->range()->dim()-1, j = 0...Z->domain()->dim()-1 .
|
|
template<class Scalar > |
void | V_VpV (const Ptr< MultiVectorBase< Scalar > > &Z, const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y) |
| Z(i,j) = X(i,j) + Y(i,j), i = 0...Z->range()->dim()-1, j = 0...Z->domain()->dim()-1 .
|
|
template<class Scalar > |
void | V_VmV (const Ptr< MultiVectorBase< Scalar > > &Z, const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y) |
| Z(i,j) = X(i,j) - Y(i,j), i = 0...Z->range()->dim()-1, j = 0...Z->domain()->dim()-1 .
|
|
template<class Scalar > |
void | V_StVpV (const Ptr< MultiVectorBase< Scalar > > &Z, const Scalar &alpha, const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y) |
| Z(i,j) = alpha*X(i,j) + Y(i), i = 0...z->space()->dim()-1 , , j = 0...Z->domain()->dim()-1.
|
|
template<class Scalar > |
bool | isFullyUninitialized (const LinearOpBase< Scalar > &M) |
| Determines if a linear operator is in the "Fully Uninitialized" state or not.
|
|
template<class Scalar > |
bool | isPartiallyInitialized (const LinearOpBase< Scalar > &M) |
| Determines if a linear operator is in the "Partially Initialized" state or not.
|
|
template<class Scalar > |
bool | isFullyInitialized (const LinearOpBase< Scalar > &M) |
| Determines if a linear operator is in the "Fully Initialized" state or not.
|
|
template<class Scalar > |
bool | opSupported (const LinearOpBase< Scalar > &M, EOpTransp M_trans) |
| Determines if an operation is supported for a single scalar type.
|
|
template<class Scalar > |
void | apply (const LinearOpBase< Scalar > &M, const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha=static_cast< Scalar >(1.0), const Scalar beta=static_cast< Scalar >(0.0)) |
| Non-member function call for M.apply(...) .
|
|
void | apply (const LinearOpBase< double > &M, const EOpTransp M_trans, const MultiVectorBase< double > &X, const Ptr< MultiVectorBase< double > > &Y, const double alpha=1.0, const double beta=0.0) |
| Calls apply<double>(...) .
|
|
|
void | assign (Scalar alpha) |
| V = alpha.
|
|
void | assign (const MultiVectorBase< Scalar > &mv) |
| V = mv.
|
|
void | scale (Scalar alpha) |
|
void | update (Scalar alpha, const MultiVectorBase< Scalar > &mv) |
|
void | linear_combination (const ArrayView< const Scalar > &alpha, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &mv, const Scalar &beta) |
| Y.col(j)(i) = beta*Y.col(j)(i) + sum( alpha[k]*X[k].col(j)(i),
|
|
void | dots (const MultiVectorBase< Scalar > &mv, const ArrayView< Scalar > &prods) const |
| Column-wise Euclidean dot product.
|
|
void | norms_1 (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const |
| Column-wise 1-norms.
|
|
void | norms_2 (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const |
| Column-wise 2-norms.
|
|
void | norms_inf (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const |
| Column-wise infinity-norms.
|
|
RCP< const VectorBase< Scalar > > | col (Ordinal j) const |
| Calls colImpl().
|
|
RCP< VectorBase< Scalar > > | col (Ordinal j) |
| Calls nonconstColImpl().
|
|
RCP< const MultiVectorBase< Scalar > > | subView (const Range1D &colRng) const |
| Calls contigSubViewImpl().
|
|
RCP< MultiVectorBase< Scalar > > | subView (const Range1D &colRng) |
| Calls nonconstContigSubViewImpl().
|
|
RCP< const MultiVectorBase< Scalar > > | subView (const ArrayView< const int > &cols) const |
| nonContigSubViewImpl().
|
|
RCP< MultiVectorBase< Scalar > > | subView (const ArrayView< const int > &cols) |
| nonconstNonContigSubViewImpl().
|
|
void | applyOp (const RTOpPack::RTOpT< Scalar > &primary_op, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &multi_vecs, const ArrayView< const Ptr< MultiVectorBase< Scalar > > > &targ_multi_vecs, const ArrayView< const Ptr< RTOpPack::ReductTarget > > &reduct_objs, const Ordinal primary_global_offset) const |
| Calls mvMultiReductApplyOpImpl().
|
|
void | applyOp (const RTOpPack::RTOpT< Scalar > &primary_op, const RTOpPack::RTOpT< Scalar > &secondary_op, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &multi_vecs, const ArrayView< const Ptr< MultiVectorBase< Scalar > > > &targ_multi_vecs, const Ptr< RTOpPack::ReductTarget > &reduct_obj, const Ordinal primary_global_offset) const |
| mvSingleReductApplyOpImpl().
|
|
void | acquireDetachedView (const Range1D &rowRng, const Range1D &colRng, RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const |
| Calls acquireDetachedMultiVectorViewImpl().
|
|
void | releaseDetachedView (RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const |
| Calls releaseDetachedMultiVectorViewImpl().
|
|
void | acquireDetachedView (const Range1D &rowRng, const Range1D &colRng, RTOpPack::SubMultiVectorView< Scalar > *sub_mv) |
| Calls acquireNonconstDetachedMultiVectorViewImpl().
|
|
void | commitDetachedView (RTOpPack::SubMultiVectorView< Scalar > *sub_mv) |
| Calls commitNonconstDetachedMultiVectorViewImpl().
|
|
RCP< const LinearOpBase< Scalar > > | clone () const |
| This function is simply overridden to return this->clone_mv() .
|
|
bool | opSupported (EOpTransp M_trans) const |
| Return if the M_trans operation of apply() is supported or not.
|
|
void | apply (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const |
| Apply the linear operator to a multi-vector : Y = alpha*op(M)*X + beta*Y .
|
|
bool | rowStatIsSupported (const RowStatLinearOpBaseUtils::ERowStat rowStat) const |
| Determine if a given row stat is supported.
|
|
void | getRowStat (const RowStatLinearOpBaseUtils::ERowStat rowStat, const Ptr< VectorBase< Scalar > > &rowStatVec) const |
| Get some statistics about a supported row.
|
|
bool | supportsScaleLeft () const |
| Determines if this objects supports left scaling.
|
|
bool | supportsScaleRight () const |
| Determines if this objects supports right scaling.
|
|
void | scaleLeft (const VectorBase< Scalar > &row_scaling) |
| Left scales operator with diagonal scaling operator.
|
|
void | scaleRight (const VectorBase< Scalar > &col_scaling) |
| Right scales operator with diagonal scaling operator.
|
|
virtual bool | rowStatIsSupportedImpl (const RowStatLinearOpBaseUtils::ERowStat rowStat) const |
|
virtual void | getRowStatImpl (const RowStatLinearOpBaseUtils::ERowStat rowStat, const Ptr< VectorBase< Scalar > > &rowStatVec) const |
|
virtual bool | supportsScaleLeftImpl () const |
|
virtual bool | supportsScaleRightImpl () const |
|
virtual void | scaleLeftImpl (const VectorBase< Scalar > &row_scaling) |
|
virtual void | scaleRightImpl (const VectorBase< Scalar > &col_scaling) |
|
void | absRowSum (const Teuchos::Ptr< Thyra::VectorBase< Scalar > > &output) const |
|
void | absColSum (const Teuchos::Ptr< Thyra::VectorBase< Scalar > > &output) const |
|
RCP< const MultiVectorBase< Scalar > > | contigSubViewImpl (const Range1D &colRng) const |
|
RCP< MultiVectorBase< Scalar > > | nonconstContigSubViewImpl (const Range1D &colRng) |
|
RCP< const MultiVectorBase< Scalar > > | nonContigSubViewImpl (const ArrayView< const int > &cols) const |
|
RCP< MultiVectorBase< Scalar > > | nonconstNonContigSubViewImpl (const ArrayView< const int > &cols) |
|
virtual void | mvSingleReductApplyOpImpl (const RTOpPack::RTOpT< Scalar > &primary_op, const RTOpPack::RTOpT< Scalar > &secondary_op, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &multi_vecs, const ArrayView< const Ptr< MultiVectorBase< Scalar > > > &targ_multi_vecs, const Ptr< RTOpPack::ReductTarget > &reduct_obj, const Ordinal primary_global_offset) const |
|
std::string | description () const |
| Default description that gives the label, type, and dimenstion .
|
|
void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const |
| Generates a default outputting for all linear operators.
|
|
template<class Scalar>
class Thyra::DefaultProductMultiVector< Scalar >
Concrete implementation of a product multi-vector.
Note that clients should almost never be creating objects of this type explicitly and should instead use DefaultProductVectorSpace
as a factory.
ToDo: Finish documentation!
The default constructor is made private to avoid accidental default construction.
Definition at line 71 of file Thyra_DefaultProductMultiVector_decl.hpp.