Thyra
Version of the Day
|
Convenient node subclass for concrete VectorBase
subclasses that relies on a default MultiVectorBase
implementation.
More...
#include <Thyra_VectorDefaultBase_decl.hpp>
Public functions overridden from Teuchos::Describable | |
virtual std::string | description () const |
Default description that gives the label, type, and dimenstion . More... | |
virtual void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const |
Generates a default outputting for all vectors. More... | |
Overridden from LinearOpBase | |
virtual RCP< const VectorSpaceBase< Scalar > > | range () const |
Returns this->space() . More... | |
virtual RCP< const VectorSpaceBase< Scalar > > | domain () const |
Returns a DefaultSerialVectorSpace object with dimension 1. More... | |
Overridden from MultiVectorBase | |
RCP< MultiVectorBase< Scalar > > | clone_mv () const |
Returns this->clone_v() . More... | |
Overridden from VectorBase | |
RCP< VectorBase< Scalar > > | clone_v () const |
Simply creates a new vector and copies the contents from *this . More... | |
Overridden protected functions from MultiVectorBase | |
virtual void | assignVecImpl (const VectorBase< Scalar > &x) |
Default implementation of assign(vector) using RTOps. More... | |
virtual void | randomizeImpl (Scalar l, Scalar u) |
Default implementation of randomize using RTOps. More... | |
virtual void | absImpl (const VectorBase< Scalar > &x) |
Default implementation of abs using RTOps. More... | |
virtual void | reciprocalImpl (const VectorBase< Scalar > &x) |
Default implementation of reciprocal using RTOps. More... | |
virtual void | eleWiseScaleImpl (const VectorBase< Scalar > &x) |
Default implementation of ele_wise_scale using RTOps. More... | |
virtual void | updateVecImpl (Scalar alpha, const VectorBase< Scalar > &x) |
Default implementation of update using RTOps. More... | |
virtual void | linearCombinationVecImpl (const ArrayView< const Scalar > &alpha, const ArrayView< const Ptr< const VectorBase< Scalar > > > &x, const Scalar &beta) |
Default implementation of linear_combination using RTOps. More... | |
virtual Scalar | dotImpl (const VectorBase< Scalar > &x) const |
Default implementation of dot using RTOps. More... | |
virtual Teuchos::ScalarTraits < Scalar >::magnitudeType | norm1Impl () const |
Default implementation of norm_1 using RTOps. More... | |
virtual Teuchos::ScalarTraits < Scalar >::magnitudeType | norm2Impl () const |
Default implementation of norm_2 using RTOps. More... | |
virtual Teuchos::ScalarTraits < Scalar >::magnitudeType | norm2WeightedImpl (const VectorBase< Scalar > &x) const |
Default implementation of norm_2 (weighted) using RTOps. More... | |
virtual Teuchos::ScalarTraits < Scalar >::magnitudeType | normInfImpl () const |
Default implementation of norm_inf using RTOps. More... | |
virtual RCP< VectorBase< Scalar > > | nonconstColImpl (Ordinal j) |
Returns Teuchos::rcp(this,false) . More... | |
virtual RCP< const MultiVectorBase< Scalar > > | contigSubViewImpl (const Range1D &col_rng) const |
Returns Teuchos::rcp(this,false) . More... | |
virtual RCP< MultiVectorBase < Scalar > > | nonconstContigSubViewImpl (const Range1D &col_rng) |
Returns Teuchos::rcp(this,false) . More... | |
virtual RCP< const MultiVectorBase< Scalar > > | nonContigSubViewImpl (const ArrayView< const int > &cols) const |
Returns Teuchos::rcp(this,false) . More... | |
virtual RCP< MultiVectorBase < Scalar > > | nonconstNonContigSubViewImpl (const ArrayView< const int > &cols) |
Returns Teuchos::rcp(this,false) . More... | |
virtual void | acquireDetachedMultiVectorViewImpl (const Range1D &rowRng, const Range1D &colRng, RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const |
Implemented in terms of this->acquireDetachedView() . More... | |
virtual void | releaseDetachedMultiVectorViewImpl (RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const |
Implemented in terms of this->releaseDetachedView() . More... | |
virtual void | acquireNonconstDetachedMultiVectorViewImpl (const Range1D &rowRng, const Range1D &colRng, RTOpPack::SubMultiVectorView< Scalar > *sub_mv) |
Implemented in terms of this->acquireDetachedView() . More... | |
virtual void | commitNonconstDetachedMultiVectorViewImpl (RTOpPack::SubMultiVectorView< Scalar > *sub_mv) |
Implemented in terms of this->commitDetachedView() . More... | |
Overridden protected functions from VectorBase | |
virtual void | acquireDetachedVectorViewImpl (const Range1D &rng, RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const |
virtual void | releaseDetachedVectorViewImpl (RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const |
virtual void | acquireNonconstDetachedVectorViewImpl (const Range1D &rng, RTOpPack::SubVectorView< Scalar > *sub_vec) |
virtual void | commitNonconstDetachedVectorViewImpl (RTOpPack::SubVectorView< Scalar > *sub_vec) |
virtual void | setSubVectorImpl (const RTOpPack::SparseSubVectorT< Scalar > &sub_vec) |
Overridden protected functions from LinearOpBase | |
bool | opSupportedImpl (EOpTransp M_trans) const |
For complex Scalar types returns true for NOTRANS and CONJTRANS and for real types returns true for all values of M_trans . More... | |
void | applyImpl (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const |
. Applies vector or its adjoint (transpose) as a linear operator. More... | |
Additional Inherited Members | |
Public Member Functions inherited from Thyra::VectorBase< Scalar > | |
void | assign (const VectorBase< Scalar > &x) |
Vector assignment: More... | |
void | randomize (Scalar l, Scalar u) |
Random vector generation: More... | |
void | update (Scalar alpha, const VectorBase< Scalar > &x) |
AXPY: More... | |
void | linear_combination (const ArrayView< const Scalar > &alpha, const ArrayView< const Ptr< const VectorBase< Scalar > > > &x, const Scalar &beta) |
Linear combination: More... | |
Scalar | dot (const VectorBase< Scalar > &x) const |
Euclidean dot product: result = x^H * this . More... | |
Teuchos::ScalarTraits< Scalar > ::magnitudeType | norm_1 () const |
One (1) norm: result = ||v||1 . More... | |
Teuchos::ScalarTraits< Scalar > ::magnitudeType | norm_2 () const |
Euclidean (2) norm: result = ||v||2 . More... | |
Teuchos::ScalarTraits< Scalar > ::magnitudeType | norm_2 (const VectorBase< Scalar > &x) const |
Weighted Euclidean (2) norm: result = ||v||2 . More... | |
Teuchos::ScalarTraits< Scalar > ::magnitudeType | norm_inf () const |
Infinity norm: result = ||v||inf . More... | |
virtual RCP< const VectorSpaceBase< Scalar > > | space () const =0 |
Return a smart pointer to the vector space that this vector belongs to. More... | |
void | applyOp (const RTOpPack::RTOpT< Scalar > &op, const ArrayView< const Ptr< const VectorBase< Scalar > > > &vecs, const ArrayView< const Ptr< VectorBase< Scalar > > > &targ_vecs, const Ptr< RTOpPack::ReductTarget > &reduct_obj, const Ordinal global_offset) const |
Calls applyOpImpl(). More... | |
void | acquireDetachedView (const Range1D &rng, RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const |
Calls acquireDetachedVectorViewImpl(). More... | |
void | releaseDetachedView (RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const |
Calls releaseDetachedVectorViewImpl(). More... | |
void | acquireDetachedView (const Range1D &rng, RTOpPack::SubVectorView< Scalar > *sub_vec) |
Calls acquireNonconstDetachedVectorViewImpl(). More... | |
void | commitDetachedView (RTOpPack::SubVectorView< Scalar > *sub_vec) |
Calls commitDetachedView(). More... | |
void | setSubVector (const RTOpPack::SparseSubVectorT< Scalar > &sub_vec) |
Calls setSubVectorImpl(). More... | |
Public Member Functions inherited from Thyra::MultiVectorBase< Scalar > | |
void | assign (Scalar alpha) |
V = alpha. More... | |
void | assign (const MultiVectorBase< Scalar > &mv) |
V = mv. More... | |
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), More... | |
void | dots (const MultiVectorBase< Scalar > &mv, const ArrayView< Scalar > &prods) const |
Column-wise Euclidean dot product. More... | |
void | norms_1 (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const |
Column-wise 1-norms. More... | |
void | norms_2 (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const |
Column-wise 2-norms. More... | |
void | norms_inf (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const |
Column-wise infinity-norms. More... | |
RCP< const VectorBase< Scalar > > | col (Ordinal j) const |
Calls colImpl(). More... | |
RCP< VectorBase< Scalar > > | col (Ordinal j) |
Calls nonconstColImpl(). More... | |
RCP< const MultiVectorBase < Scalar > > | subView (const Range1D &colRng) const |
Calls contigSubViewImpl(). More... | |
RCP< MultiVectorBase< Scalar > > | subView (const Range1D &colRng) |
Calls nonconstContigSubViewImpl(). More... | |
RCP< const MultiVectorBase < Scalar > > | subView (const ArrayView< const int > &cols) const |
nonContigSubViewImpl(). More... | |
RCP< MultiVectorBase< Scalar > > | subView (const ArrayView< const int > &cols) |
nonconstNonContigSubViewImpl(). More... | |
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(). More... | |
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(). More... | |
void | acquireDetachedView (const Range1D &rowRng, const Range1D &colRng, RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const |
Calls acquireDetachedMultiVectorViewImpl(). More... | |
void | releaseDetachedView (RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const |
Calls releaseDetachedMultiVectorViewImpl(). More... | |
void | acquireDetachedView (const Range1D &rowRng, const Range1D &colRng, RTOpPack::SubMultiVectorView< Scalar > *sub_mv) |
Calls acquireNonconstDetachedMultiVectorViewImpl(). More... | |
void | commitDetachedView (RTOpPack::SubMultiVectorView< Scalar > *sub_mv) |
Calls commitNonconstDetachedMultiVectorViewImpl(). More... | |
RCP< const LinearOpBase< Scalar > > | clone () const |
This function is simply overridden to return this->clone_mv() . More... | |
Public Member Functions inherited from Thyra::LinearOpBase< Scalar > | |
bool | opSupported (EOpTransp M_trans) const |
Return if the M_trans operation of apply() is supported or not. More... | |
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 . More... | |
Public Member Functions inherited from Thyra::RowStatLinearOpBase< Scalar > | |
bool | rowStatIsSupported (const RowStatLinearOpBaseUtils::ERowStat rowStat) const |
Determine if a given row stat is supported. More... | |
void | getRowStat (const RowStatLinearOpBaseUtils::ERowStat rowStat, const Ptr< VectorBase< Scalar > > &rowStatVec) const |
Get some statistics about a supported row. More... | |
Public Member Functions inherited from Thyra::ScaledLinearOpBase< Scalar > | |
bool | supportsScaleLeft () const |
Determines if this objects supports left scaling. More... | |
bool | supportsScaleRight () const |
Determines if this objects supports right scaling. More... | |
void | scaleLeft (const VectorBase< Scalar > &row_scaling) |
Left scales operator with diagonal scaling operator. More... | |
void | scaleRight (const VectorBase< Scalar > &col_scaling) |
Right scales operator with diagonal scaling operator. More... | |
Protected Member Functions inherited from Thyra::VectorBase< Scalar > | |
virtual void | applyOpImpl (const RTOpPack::RTOpT< Scalar > &op, const ArrayView< const Ptr< const VectorBase< Scalar > > > &vecs, const ArrayView< const Ptr< VectorBase< Scalar > > > &targ_vecs, const Ptr< RTOpPack::ReductTarget > &reduct_obj, const Ordinal global_offset) const =0 |
Apply a reduction/transformation operator over a set of vectors: op(op(v[0]...v[nv-1],z[0]...z[nz-1]),(*reduct_obj)) -> z[0]...z[nz-1],(*reduct_obj) . More... | |
Protected Member Functions inherited from Thyra::MultiVectorBase< Scalar > | |
void | absRowSum (const Teuchos::Ptr< Thyra::VectorBase< Scalar > > &output) const |
void | absColSum (const Teuchos::Ptr< Thyra::VectorBase< Scalar > > &output) const |
virtual RCP< const VectorBase < Scalar > > | colImpl (Ordinal j) const |
Return a non-changeable view of a constituent column vector. More... | |
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) |
Protected Member Functions inherited from Thyra::LinearOpBase< Scalar > | |
Protected Member Functions inherited from Thyra::RowStatLinearOpBase< Scalar > | |
Protected Member Functions inherited from Thyra::ScaledLinearOpBase< Scalar > | |
Protected Member Functions inherited from Thyra::MultiVectorDefaultBase< Scalar > | |
virtual void | assignImpl (Scalar alpha) |
Default implementation of assign(scalar) using RTOps. More... | |
virtual void | assignMultiVecImpl (const MultiVectorBase< Scalar > &mv) |
Default implementation of assign(MV) using RTOps. More... | |
virtual void | scaleImpl (Scalar alpha) |
Default implementation of scale using RTOps. More... | |
virtual void | updateImpl (Scalar alpha, const MultiVectorBase< Scalar > &mv) |
Default implementation of update using RTOps. More... | |
virtual void | linearCombinationImpl (const ArrayView< const Scalar > &alpha, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &mv, const Scalar &beta) |
Default implementation of linear_combination using RTOps. More... | |
virtual void | dotsImpl (const MultiVectorBase< Scalar > &mv, const ArrayView< Scalar > &prods) const |
Default implementation of dots using RTOps. More... | |
virtual void | norms1Impl (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const |
Default implementation of norms_1 using RTOps. More... | |
virtual void | norms2Impl (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const |
Default implementation of norms_2 using RTOps. More... | |
virtual void | normsInfImpl (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const |
Default implementation of norms_inf using RTOps. More... | |
virtual void | mvMultiReductApplyOpImpl (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 |
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 |
Protected Member Functions inherited from Thyra::LinearOpDefaultBase< Scalar > | |
Related Functions inherited from Thyra::VectorBase< Scalar > | |
template<class Scalar > | |
void | applyOp (const RTOpPack::RTOpT< Scalar > &op, const ArrayView< const Ptr< const VectorBase< Scalar > > > &vecs, const ArrayView< const Ptr< VectorBase< Scalar > > > &targ_vecs, const Ptr< RTOpPack::ReductTarget > &reduct_obj, const Ordinal global_offset=0) |
Apply a reduction/transformation operator over a set of vectors: op(op(v[0]...v[nv-1],z[0]...z[nz-1]),(*reduct_obj)) -> z[0]...z[nz-1],(*reduct_obj) . More... | |
template<class Scalar > | |
Scalar | sum (const VectorBase< Scalar > &v) |
Sum of vector elements: result = sum( v(i), i = 0...v.space()->dim()-1 ) . More... | |
template<class Scalar > | |
Scalar | scalarProd (const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) |
Scalar product result = <x,y> . More... | |
template<class Scalar > | |
Scalar | inner (const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) |
Inner/Scalar product result = <x,y> . More... | |
template<class Scalar > | |
Teuchos::ScalarTraits< Scalar > ::magnitudeType | norm (const VectorBase< Scalar > &v) |
Natural norm: result = sqrt(<v,v>) . More... | |
template<class Scalar > | |
Teuchos::ScalarTraits< Scalar > ::magnitudeType | norm_1 (const VectorBase< Scalar > &v) |
One (1) norm: result = ||v||1 . More... | |
template<class Scalar > | |
Teuchos::ScalarTraits< Scalar > ::magnitudeType | norm_2 (const VectorBase< Scalar > &v) |
Euclidean (2) norm: result = ||v||2 . More... | |
template<class Scalar > | |
Teuchos::ScalarTraits< Scalar > ::magnitudeType | norm_2 (const VectorBase< Scalar > &w, const VectorBase< Scalar > &v) |
Weighted Euclidean (2) norm: result = sqrt( sum( w(i)*conj(v(i))*v(i)) ) . More... | |
template<class Scalar > | |
Teuchos::ScalarTraits< Scalar > ::magnitudeType | norm_inf (const VectorBase< Scalar > &v_rhs) |
Infinity norm: result = ||v||inf . More... | |
template<class Scalar > | |
Scalar | dot (const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) |
Dot product: result = conj(x)'*y . More... | |
template<class Scalar > | |
Scalar | get_ele (const VectorBase< Scalar > &v, Ordinal i) |
Get single element: result = v(i) . More... | |
template<class Scalar > | |
void | set_ele (Ordinal i, Scalar alpha, const Ptr< VectorBase< Scalar > > &v) |
Set single element: v(i) = alpha . More... | |
template<class Scalar > | |
void | put_scalar (const Scalar &alpha, const Ptr< VectorBase< Scalar > > &y) |
Assign all elements to a scalar: y(i) = alpha, i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | copy (const VectorBase< Scalar > &x, const Ptr< VectorBase< Scalar > > &y) |
Vector assignment: y(i) = x(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | add_scalar (const Scalar &alpha, const Ptr< VectorBase< Scalar > > &y) |
Add a scalar to all elements: y(i) += alpha, i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | scale (const Scalar &alpha, const Ptr< VectorBase< Scalar > > &y) |
Scale all elements by a scalar: y(i) *= alpha, i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | abs (const VectorBase< Scalar > &x, const Ptr< VectorBase< Scalar > > &y) |
Element-wise absolute value: y(i) = abs(x(i)), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | reciprocal (const VectorBase< Scalar > &x, const Ptr< VectorBase< Scalar > > &y) |
Element-wise reciprocal: y(i) = 1/x(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | ele_wise_prod (const Scalar &alpha, const VectorBase< Scalar > &x, const VectorBase< Scalar > &v, const Ptr< VectorBase< Scalar > > &y) |
Element-wise product update: y(i) += alpha * x(i) * v(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | pair_wise_max (const Scalar &alpha, const VectorBase< Scalar > &x, const VectorBase< Scalar > &v, const Ptr< VectorBase< Scalar > > &y) |
Element-wise maximum: y(i) = alpha * max(x(i), v(i)), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | ele_wise_conj_prod (const Scalar &alpha, const VectorBase< Scalar > &x, const VectorBase< Scalar > &v, const Ptr< VectorBase< Scalar > > &y) |
Element-wise conjugate product update: y(i) += alpha * conj(x(i)) * v(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | ele_wise_scale (const VectorBase< Scalar > &x, const Ptr< VectorBase< Scalar > > &y) |
Element-wise scaling: y(i) *= x(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | Vp_StVtV (const Ptr< VectorBase< Scalar > > &y, const Scalar &alpha, const VectorBase< Scalar > &x, const VectorBase< Scalar > &v) |
Element-wise product update: y(i) += alpha * x(i) * v(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | ele_wise_prod_update (const Scalar &alpha, const VectorBase< Scalar > &x, const Ptr< VectorBase< Scalar > > &y) |
Element-wise product update: y(i) *= alpha * x(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | pair_wise_max_update (const Scalar &alpha, const VectorBase< Scalar > &x, const Ptr< VectorBase< Scalar > > &y) |
Element-wise maximum update: y(i) = alpha * max(x(i), y(i)), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | Vt_StV (const Ptr< VectorBase< Scalar > > &y, const Scalar &alpha, const VectorBase< Scalar > &x) |
Element-wise product update: y(i) *= alpha * x(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | ele_wise_divide (const Scalar &alpha, const VectorBase< Scalar > &x, const VectorBase< Scalar > &v, const Ptr< VectorBase< Scalar > > &y) |
Element-wise division update: y(i) += alpha * x(i) / v(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | linear_combination (const ArrayView< const Scalar > &alpha, const ArrayView< const Ptr< const VectorBase< Scalar > > > &x, const Scalar &beta, const Ptr< VectorBase< Scalar > > &y) |
Linear combination: y(i) = beta*y(i) + sum( alpha[k]*x[k](i), k=0...m-1 ), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | seed_randomize (unsigned int s) |
Seed the random number generator used in randomize() . More... | |
template<class Scalar > | |
void | randomize (Scalar l, Scalar u, const Ptr< VectorBase< Scalar > > &v) |
Random vector generation: v(i) = rand(l,u), , i = 1...v->space()->dim() . More... | |
template<class Scalar > | |
void | assign (const Ptr< VectorBase< Scalar > > &y, const Scalar &alpha) |
Assign all elements to a scalar: y(i) = alpha, i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | assign (const Ptr< VectorBase< Scalar > > &y, const VectorBase< Scalar > &x) |
Vector assignment: y(i) = x(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | Vp_S (const Ptr< VectorBase< Scalar > > &y, const Scalar &alpha) |
Add a scalar to all elements: y(i) += alpha, i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | Vt_S (const Ptr< VectorBase< Scalar > > &y, const Scalar &alpha) |
Scale all elements by a scalar: y(i) *= alpha, i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | V_StV (const Ptr< VectorBase< Scalar > > &y, const Scalar &alpha, const VectorBase< Scalar > &x) |
Assign scaled vector: y(i) = alpha * x(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | Vp_StV (const Ptr< VectorBase< Scalar > > &y, const Scalar &alpha, const VectorBase< Scalar > &x) |
AXPY: y(i) = alpha * x(i) + y(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | Vp_V (const Ptr< VectorBase< Scalar > > &y, const VectorBase< Scalar > &x, const Scalar &beta=static_cast< Scalar >(1.0)) |
y(i) = x(i) + beta*y(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | V_V (const Ptr< VectorBase< Scalar > > &y, const VectorBase< Scalar > &x) |
y(i) = x(i), i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | V_S (const Ptr< VectorBase< Scalar > > &y, const Scalar &alpha) |
y(i) = alpha, i = 0...y->space()->dim()-1 . More... | |
template<class Scalar > | |
void | V_VpV (const Ptr< VectorBase< Scalar > > &z, const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) |
z(i) = x(i) + y(i), i = 0...z->space()->dim()-1 . More... | |
template<class Scalar > | |
void | V_VmV (const Ptr< VectorBase< Scalar > > &z, const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) |
z(i) = x(i) - y(i), i = 0...z->space()->dim()-1 . More... | |
template<class Scalar > | |
void | V_StVpV (const Ptr< VectorBase< Scalar > > &z, const Scalar &alpha, const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) |
z(i) = alpha*x(i) + y(i), i = 0...z->space()->dim()-1 . More... | |
template<class Scalar > | |
void | V_VpStV (const Ptr< VectorBase< Scalar > > &z, const VectorBase< Scalar > &x, const Scalar &alpha, const VectorBase< Scalar > &y) |
z(i) = x(i) + alpha*y(i), i = 0...z->space()->dim()-1 . More... | |
template<class Scalar > | |
void | V_StVpStV (const Ptr< VectorBase< Scalar > > &z, const Scalar &alpha, const VectorBase< Scalar > &x, const Scalar &beta, const VectorBase< Scalar > &y) |
z(i) = alpha*x(i) + beta*y(i), i = 0...z->space()->dim()-1 . More... | |
template<class Scalar > | |
Scalar | min (const VectorBase< Scalar > &x) |
Min element: result = min{ x(i), i = 0...x.space()->dim()-1 } . More... | |
template<class Scalar > | |
void | min (const VectorBase< Scalar > &x, const Ptr< Scalar > &maxEle, const Ptr< Ordinal > &maxIndex) |
Min element and its index: Returns maxEle = x(k) and maxIndex = k such that x(k) <= x(i) for all i = 0...x.space()->dim()-1 . More... | |
template<class Scalar > | |
void | minGreaterThanBound (const VectorBase< Scalar > &x, const Scalar &bound, const Ptr< Scalar > &minEle, const Ptr< Ordinal > &minIndex) |
Minimum element greater than some bound and its index: Returns minEle = x(k) and minIndex = k such that x(k) <= x(i) for all i where x(i) > bound . More... | |
template<class Scalar > | |
Scalar | max (const VectorBase< Scalar > &x) |
Max element: result = max{ x(i), i = 1...n } . More... | |
template<class Scalar > | |
void | max (const VectorBase< Scalar > &x, const Ptr< Scalar > &maxEle, const Ptr< Ordinal > &maxIndex) |
Max element and its index: Returns maxEle = x(k) and maxIndex = k such that x(k) >= x(i) for i = 0...x.space()->dim()-1 . More... | |
template<class Scalar > | |
void | maxLessThanBound (const VectorBase< Scalar > &x, const Scalar &bound, const Ptr< Scalar > &maxEle, const Ptr< Ordinal > &maxIndex) |
Max element less than bound and its index: Returns maxEle = x(k) and maxIndex = k such that x(k) >= x(i) for all i where x(i) < bound . More... | |
Related Functions inherited from Thyra::MultiVectorBase< Scalar > | |
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. More... | |
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. More... | |
template<class Scalar > | |
void | norms (const MultiVectorBase< Scalar > &V, const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) |
Column-wise multi-vector natural norm. More... | |
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. More... | |
template<class Scalar > | |
void | norms_1 (const MultiVectorBase< Scalar > &V, const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) |
Column-wise multi-vector one norm. More... | |
template<class Scalar > | |
void | norms_2 (const MultiVectorBase< Scalar > &V, const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) |
Column-wise multi-vector 2 (Euclidean) norm. More... | |
template<class Scalar > | |
void | norms_inf (const MultiVectorBase< Scalar > &V, const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) |
Column-wise multi-vector infinity norm. More... | |
template<class Scalar > | |
Array< typename ScalarTraits < Scalar >::magnitudeType > | norms_inf (const MultiVectorBase< Scalar > &V) |
Column-wise multi-vector infinity norm. More... | |
template<class Scalar > | |
void | dots (const MultiVectorBase< Scalar > &V1, const MultiVectorBase< Scalar > &V2, const ArrayView< Scalar > &dots) |
Multi-vector dot product. More... | |
template<class Scalar > | |
void | sums (const MultiVectorBase< Scalar > &V, const ArrayView< Scalar > &sums) |
Multi-vector column sum. More... | |
template<class Scalar > | |
ScalarTraits< Scalar > ::magnitudeType | norm_1 (const MultiVectorBase< Scalar > &V) |
Take the induced matrix one norm of a multi-vector. More... | |
template<class Scalar > | |
void | scale (Scalar alpha, const Ptr< MultiVectorBase< Scalar > > &V) |
V = alpha*V. More... | |
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). More... | |
template<class Scalar > | |
void | assign (const Ptr< MultiVectorBase< Scalar > > &V, Scalar alpha) |
V = alpha. More... | |
template<class Scalar > | |
void | assign (const Ptr< MultiVectorBase< Scalar > > &V, const MultiVectorBase< Scalar > &U) |
V = U. More... | |
template<class Scalar > | |
void | update (Scalar alpha, const MultiVectorBase< Scalar > &U, const Ptr< MultiVectorBase< Scalar > > &V) |
alpha*U + V -> V. More... | |
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 ,,, More... | |
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. More... | |
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 . More... | |
template<class Scalar > | |
void | randomize (Scalar l, Scalar u, const Ptr< MultiVectorBase< Scalar > > &V) |
Generate a random multi-vector with elements uniformly distributed elements. More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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 . More... | |
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. More... | |
Related Functions inherited from Thyra::LinearOpBase< Scalar > | |
template<class Scalar > | |
bool | isFullyUninitialized (const LinearOpBase< Scalar > &M) |
Determines if a linear operator is in the "Fully Uninitialized" state or not. More... | |
template<class Scalar > | |
bool | isPartiallyInitialized (const LinearOpBase< Scalar > &M) |
Determines if a linear operator is in the "Partially Initialized" state or not. More... | |
template<class Scalar > | |
bool | isFullyInitialized (const LinearOpBase< Scalar > &M) |
Determines if a linear operator is in the "Fully Initialized" state or not. More... | |
template<class Scalar > | |
bool | opSupported (const LinearOpBase< Scalar > &M, EOpTransp M_trans) |
Determines if an operation is supported for a single scalar type. More... | |
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(...) . More... | |
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>(...) . More... | |
Convenient node subclass for concrete VectorBase
subclasses that relies on a default MultiVectorBase
implementation.
Notes for subclass developers
In order to create a concrete subclass of this interface, only two operations must be overridden: space()
and applyOp()
. Overriding the space()
operation requires defining a concrete VectorSpaceBase
class (which has only three pure virtual operations if using VectorSpaceDefaultBase
).
Note that all of the inherited LinearOpBase
and MultiVectorBase
functions are overridden in this subclass and are given perfectly good implementations. Therefore, a concrete subclass of VectorDefaultBase
should not have to re-override any of these functions.
Definition at line 73 of file Thyra_VectorDefaultBase_decl.hpp.
|
virtual |
Default description that gives the label, type, and dimenstion .
Reimplemented from Thyra::LinearOpDefaultBase< Scalar >.
Reimplemented in Thyra::DefaultProductVector< Scalar >, Thyra::SpmdVectorDefaultBase< Scalar >, and Thyra::DefaultMultiVectorProductVector< Scalar >.
Definition at line 90 of file Thyra_VectorDefaultBase_def.hpp.
|
virtual |
Generates a default outputting for all vectors.
Calls on the this->describe(void)
function for the name of the class (and possibly its instance name) and then if verbLevel>=VERB_HIGH
, then the vector elements themselves are printed as well. The format of the output is is shown below:
type = 'this->description()', size = n 0:x1 1:x2 . . . n-1:xn
The index:value
lines are offset an additional Teuchos::OSTab
amount. A newline is printed after the last n-1:xn
entry.
Reimplemented from Thyra::LinearOpDefaultBase< Scalar >.
Reimplemented in Thyra::DefaultProductVector< Scalar >, and Thyra::DefaultMultiVectorProductVector< Scalar >.
Definition at line 107 of file Thyra_VectorDefaultBase_def.hpp.
|
virtual |
Returns this->space()
.
Implements Thyra::LinearOpBase< Scalar >.
Definition at line 133 of file Thyra_VectorDefaultBase_def.hpp.
|
virtual |
Returns a DefaultSerialVectorSpace
object with dimension 1.
Implements Thyra::LinearOpBase< Scalar >.
Reimplemented in Thyra::TpetraVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 147 of file Thyra_VectorDefaultBase_def.hpp.
|
virtual |
Returns this->clone_v()
.
Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.
Definition at line 167 of file Thyra_VectorDefaultBase_def.hpp.
|
virtual |
Simply creates a new vector and copies the contents from *this
.
Implements Thyra::VectorBase< Scalar >.
Definition at line 184 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Default implementation of assign(vector) using RTOps.
Implements Thyra::VectorBase< Scalar >.
Definition at line 202 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Default implementation of randomize using RTOps.
Implements Thyra::VectorBase< Scalar >.
Reimplemented in Thyra::DefaultMultiVectorProductVector< Scalar >, and Thyra::TpetraVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 209 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Default implementation of abs using RTOps.
Implements Thyra::VectorBase< Scalar >.
Reimplemented in Thyra::DefaultProductVector< Scalar >, Thyra::DefaultMultiVectorProductVector< Scalar >, and Thyra::TpetraVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 221 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Default implementation of reciprocal using RTOps.
Implements Thyra::VectorBase< Scalar >.
Reimplemented in Thyra::DefaultProductVector< Scalar >, Thyra::DefaultMultiVectorProductVector< Scalar >, and Thyra::TpetraVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 231 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Default implementation of ele_wise_scale using RTOps.
Implements Thyra::VectorBase< Scalar >.
Reimplemented in Thyra::DefaultProductVector< Scalar >, Thyra::DefaultMultiVectorProductVector< Scalar >, and Thyra::TpetraVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 241 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Default implementation of update using RTOps.
Implements Thyra::VectorBase< Scalar >.
Definition at line 251 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Default implementation of linear_combination using RTOps.
Implements Thyra::VectorBase< Scalar >.
Definition at line 260 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Default implementation of dot using RTOps.
Implements Thyra::VectorBase< Scalar >.
Definition at line 274 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Default implementation of norm_1 using RTOps.
Implements Thyra::VectorBase< Scalar >.
Definition at line 284 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Default implementation of norm_2 using RTOps.
Implements Thyra::VectorBase< Scalar >.
Definition at line 294 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Default implementation of norm_2 (weighted) using RTOps.
Implements Thyra::VectorBase< Scalar >.
Reimplemented in Thyra::DefaultProductVector< Scalar >, Thyra::DefaultMultiVectorProductVector< Scalar >, and Thyra::TpetraVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 304 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Default implementation of norm_inf using RTOps.
Implements Thyra::VectorBase< Scalar >.
Definition at line 318 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Returns Teuchos::rcp(this,false)
.
Implements Thyra::MultiVectorBase< Scalar >.
Definition at line 331 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Returns Teuchos::rcp(this,false)
.
Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.
Definition at line 349 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Returns Teuchos::rcp(this,false)
.
Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.
Definition at line 364 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Returns Teuchos::rcp(this,false)
.
Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.
Definition at line 379 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Returns Teuchos::rcp(this,false)
.
Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.
Definition at line 395 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Implemented in terms of this->acquireDetachedView()
.
Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.
Definition at line 410 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Implemented in terms of this->releaseDetachedView()
.
Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.
Definition at line 436 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Implemented in terms of this->acquireDetachedView()
.
Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.
Definition at line 446 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
Implemented in terms of this->commitDetachedView()
.
Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.
Definition at line 472 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
This implementation is based on a vector reduction operator class (see RTOpPack::ROpGetSubVector
) and calls applyOp()
. Note that the footprint of the reduction object (both internal and external state) will be O(rng.size()
). For serial applications this is fairly reasonable and will not be a major performance penalty. For parallel applications, however, this is a terrible implementation and must be overridden if rng.size()
is large at all. Although, this function should not even be used in case where the vector is very large. If a subclass does override this function, it must also override releaseDetachedView()
which has a implementation which is a companion to this function's implementation.
Implements Thyra::VectorBase< Scalar >.
Reimplemented in Thyra::DefaultProductVector< Scalar >, Thyra::DefaultMultiVectorProductVector< Scalar >, Thyra::SpmdVectorDefaultBase< Scalar >, and Thyra::TpetraVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 496 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
This implementation is a companion to the implementation for the non-const
version of acquireDetachedView()
. If acquireDetachedView()
is overridden by a subclass then this function must be overridden also!
Implements Thyra::VectorBase< Scalar >.
Reimplemented in Thyra::DefaultProductVector< Scalar >, Thyra::DefaultMultiVectorProductVector< Scalar >, and Thyra::SpmdVectorDefaultBase< Scalar >.
Definition at line 524 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
This implementation is based on a vector reduction operator class (see RTOpPack::ROpGetSubVector
) and calls applyOp()
. Note that the footprint of the reduction object (both internal and external state) will be O(rng.size()
). For serial applications this is fairly reasonable and will not be a major performance penalty. For parallel applications, this will be a terrible thing to do and must be overridden if rng.size()
is large at all. If a subclass does override this function, it must also override commitDetachedView()
which has a implementation which is a companion to this function's implementation.
Implements Thyra::VectorBase< Scalar >.
Reimplemented in Thyra::DefaultProductVector< Scalar >, Thyra::DefaultMultiVectorProductVector< Scalar >, Thyra::SpmdVectorDefaultBase< Scalar >, and Thyra::TpetraVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 534 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
This function has an implementation which is a companion to the implementation for acquireDetachedView()
. If acquireDetachedView()
is overridden by a subclass then this function must be overridden also!
Implements Thyra::VectorBase< Scalar >.
Reimplemented in Thyra::DefaultProductVector< Scalar >, Thyra::DefaultMultiVectorProductVector< Scalar >, Thyra::SpmdVectorDefaultBase< Scalar >, and Thyra::TpetraVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 557 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
This implementation uses a transformation operator class (see RTOpPack::TOpSetSubVector
) and calls applyOp()
. Be forewarned however, that the operator objects state data (both internal and external) will be order O(sub_vec.subNz()
). For serial applications, this is entirely adequate. For parallel applications this may be bad!
Implements Thyra::VectorBase< Scalar >.
Reimplemented in Thyra::DefaultProductVector< Scalar >, and Thyra::DefaultMultiVectorProductVector< Scalar >.
Definition at line 572 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
For complex Scalar
types returns true
for NOTRANS
and CONJTRANS
and for real types returns true for all values of M_trans
.
Implements Thyra::LinearOpBase< Scalar >.
Definition at line 584 of file Thyra_VectorDefaultBase_def.hpp.
|
protectedvirtual |
. Applies vector or its adjoint (transpose) as a linear operator.
Implements Thyra::LinearOpBase< Scalar >.
Reimplemented in Thyra::TpetraVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 592 of file Thyra_VectorDefaultBase_def.hpp.