Thyra::SingleScalarEuclideanLinearOpBase< Scalar > Class Template Reference
[Miscellaneous Support Code for Developing Thyra Operator/Vector Subclass Implementations]

Base class for euclidean linear operators that can only handle a single scalar type. More...

#include <Thyra_SingleScalarEuclideanLinearOpBaseDecl.hpp>

Inheritance diagram for Thyra::SingleScalarEuclideanLinearOpBase< Scalar >:

[legend]
List of all members.

Overridden from LinearOpBase

bool applySupports (const EConj conj) const
 
bool applyTransposeSupports (const EConj conj) const
 

Overridden from EuclideanLinearOpBase

void euclideanApply (const EConj conj, const MultiVectorBase< Scalar > &X, MultiVectorBase< Scalar > *Y, const Scalar alpha, const Scalar beta) const
 
void euclideanApplyTranspose (const EConj conj, const MultiVectorBase< Scalar > &X, MultiVectorBase< Scalar > *Y, const Scalar alpha, const Scalar beta) const
 

Pure virtual functions (must be overridden by subclass)

virtual bool opSupported (ETransp M_trans) const =0
 Return if the M_trans operation of apply() is supported or not.
virtual void euclideanApply (const ETransp M_trans, const MultiVectorBase< Scalar > &X, MultiVectorBase< Scalar > *Y, const Scalar alpha, const Scalar beta) const =0
 Apply the linear operator (or its transpose).

Detailed Description

template<class Scalar>
class Thyra::SingleScalarEuclideanLinearOpBase< Scalar >

Base class for euclidean linear operators that can only handle a single scalar type.

This class is meant to provide an easier way for subclasses to provide implementations for LinearOpBase::apply() and LinearOpBase::applyTranspose() and is not meant to be used as an client interface. Therefore, this class should be inherited using protected or private.

Definition at line 48 of file Thyra_SingleScalarEuclideanLinearOpBaseDecl.hpp.


Member Function Documentation

template<class Scalar>
bool Thyra::SingleScalarEuclideanLinearOpBase< Scalar >::applySupports ( const EConj  conj  )  const [virtual]

Reimplemented from Thyra::LinearOpBase< RangeScalar, DomainScalar >.

Definition at line 40 of file Thyra_SingleScalarEuclideanLinearOpBase.hpp.

template<class Scalar>
bool Thyra::SingleScalarEuclideanLinearOpBase< Scalar >::applyTransposeSupports ( const EConj  conj  )  const [virtual]

Reimplemented from Thyra::LinearOpBase< RangeScalar, DomainScalar >.

Definition at line 46 of file Thyra_SingleScalarEuclideanLinearOpBase.hpp.

template<class Scalar>
void Thyra::SingleScalarEuclideanLinearOpBase< Scalar >::euclideanApply ( const EConj  conj,
const MultiVectorBase< Scalar > &  X,
MultiVectorBase< Scalar > *  Y,
const Scalar  alpha,
const Scalar  beta 
) const

Definition at line 54 of file Thyra_SingleScalarEuclideanLinearOpBase.hpp.

template<class Scalar>
void Thyra::SingleScalarEuclideanLinearOpBase< Scalar >::euclideanApplyTranspose ( const EConj  conj,
const MultiVectorBase< Scalar > &  X,
MultiVectorBase< Scalar > *  Y,
const Scalar  alpha,
const Scalar  beta 
) const

Definition at line 66 of file Thyra_SingleScalarEuclideanLinearOpBase.hpp.

template<class Scalar>
virtual bool Thyra::SingleScalarEuclideanLinearOpBase< Scalar >::opSupported ( ETransp  M_trans  )  const [protected, pure virtual]

Return if the M_trans operation of apply() is supported or not.

Preconditions:

Note that an operator must support at least one of the values of ETrans (i.e. the transposed or the non-transposed operations must be supported, both can not be unsupported)

Implemented in Thyra::SpmdMultiVectorBase< Scalar >, ExampleTridiagSerialLinearOp< Scalar >, and ExampleTridiagSpmdLinearOp< Scalar >.

template<class Scalar>
virtual void Thyra::SingleScalarEuclideanLinearOpBase< Scalar >::euclideanApply ( const ETransp  M_trans,
const MultiVectorBase< Scalar > &  X,
MultiVectorBase< Scalar > *  Y,
const Scalar  alpha,
const Scalar  beta 
) const [protected, pure virtual]

Apply the linear operator (or its transpose).

ToDo: Finish documentation!

Preconditions:

Implemented in Thyra::SerialLinearOpBase< Scalar >, Thyra::SingleRhsEuclideanLinearOpBase< Scalar >, Thyra::SpmdLinearOpBase< Scalar >, and Thyra::SpmdMultiVectorBase< Scalar >.


The documentation for this class was generated from the following files:
Generated on Tue Oct 20 12:47:01 2009 for Thyra Operator/Vector Support by doxygen 1.4.7