Thyra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members
Thyra::ScaledLinearOpBase< Scalar > Class Template Referenceabstract

Applies left or right sclaing to the linear operator. More...

#include <Thyra_ScaledLinearOpBase.hpp>

Inheritance diagram for Thyra::ScaledLinearOpBase< Scalar >:
Inheritance graph
[legend]

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...
 

Detailed Description

template<class Scalar>
class Thyra::ScaledLinearOpBase< Scalar >

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:

Definition at line 50 of file Thyra_ScaledLinearOpBase.hpp.

Member Function Documentation

template<class Scalar>
bool Thyra::ScaledLinearOpBase< Scalar >::supportsScaleLeft ( ) const
inline

Determines if this objects supports left scaling.

Definition at line 58 of file Thyra_ScaledLinearOpBase.hpp.

template<class Scalar>
bool Thyra::ScaledLinearOpBase< Scalar >::supportsScaleRight ( ) const
inline

Determines if this objects supports right scaling.

Definition at line 63 of file Thyra_ScaledLinearOpBase.hpp.

template<class Scalar>
void Thyra::ScaledLinearOpBase< Scalar >::scaleLeft ( const VectorBase< Scalar > &  row_scaling)
inline

Left scales operator with diagonal scaling operator.

supportsScaleLeft()==true

Definition at line 70 of file Thyra_ScaledLinearOpBase.hpp.

template<class Scalar>
void Thyra::ScaledLinearOpBase< Scalar >::scaleRight ( const VectorBase< Scalar > &  col_scaling)
inline

Right scales operator with diagonal scaling operator.

supportsScaleRight()==true

Definition at line 77 of file Thyra_ScaledLinearOpBase.hpp.

template<class Scalar>
virtual bool Thyra::ScaledLinearOpBase< Scalar >::supportsScaleLeftImpl ( ) const
protectedpure virtual
template<class Scalar>
virtual bool Thyra::ScaledLinearOpBase< Scalar >::supportsScaleRightImpl ( ) const
protectedpure virtual
template<class Scalar>
virtual void Thyra::ScaledLinearOpBase< Scalar >::scaleLeftImpl ( const VectorBase< Scalar > &  row_scaling)
protectedpure virtual
template<class Scalar>
virtual void Thyra::ScaledLinearOpBase< Scalar >::scaleRightImpl ( const VectorBase< Scalar > &  col_scaling)
protectedpure virtual

The documentation for this class was generated from the following file: