|
(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 39 of file Thyra_DefaultProductMultiVector_decl.hpp.