Thyra
Version of the Day
|
Applies left or right sclaing to the linear operator. More...
#include <Thyra_ScaledLinearOpBase.hpp>
Non-virtual public interface functions. | |
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 virtual functions to be overridden by subclasses. | |
virtual bool | supportsScaleLeftImpl () const =0 |
virtual bool | supportsScaleRightImpl () const =0 |
virtual void | scaleLeftImpl (const VectorBase< Scalar > &row_scaling)=0 |
virtual void | scaleRightImpl (const VectorBase< Scalar > &col_scaling)=0 |
Additional Inherited Members | |
Public Member Functions inherited from Thyra::LinearOpBase< Scalar > | |
virtual RCP< const VectorSpaceBase< Scalar > > | range () const =0 |
Return a smart pointer for the range space for this operator. More... | |
virtual RCP< const VectorSpaceBase< Scalar > > | domain () const =0 |
Return a smart pointer for the domain space for this operator. More... | |
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... | |
virtual RCP< const LinearOpBase< Scalar > > | clone () const |
Clone the linear operator object (if supported). More... | |
Protected Member Functions inherited from Thyra::LinearOpBase< Scalar > | |
virtual bool | opSupportedImpl (EOpTransp M_trans) const =0 |
Override in subclass. More... | |
virtual void | applyImpl (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const =0 |
Override in subclass. 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... | |
Applies left or right sclaing to the linear operator.
This interface represents a linear operator M
that explicitly applies left or right scaling by a diagonal (vector) operator d
. # Left scaling:
M = dM
or Right scaling:
M = Md
where:
M
is the LinearOp
object,
d
is the VectorBase
object representing the diagonal scaling operator.
Definition at line 82 of file Thyra_ScaledLinearOpBase.hpp.
|
inline |
Determines if this objects supports left scaling.
Definition at line 90 of file Thyra_ScaledLinearOpBase.hpp.
|
inline |
Determines if this objects supports right scaling.
Definition at line 95 of file Thyra_ScaledLinearOpBase.hpp.
|
inline |
Left scales operator with diagonal scaling operator.
supportsScaleLeft()==true
Definition at line 102 of file Thyra_ScaledLinearOpBase.hpp.
|
inline |
Right scales operator with diagonal scaling operator.
supportsScaleRight()==true
Definition at line 109 of file Thyra_ScaledLinearOpBase.hpp.
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |