#include <Thyra_EuclideanLinearOpBaseDecl.hpp>
Inheritance diagram for Thyra::EuclideanLinearOpBase< RangeScalar, DomainScalar >:

Pure virtual functions to override in subclasses | |
| virtual Teuchos::RCP< const ScalarProdVectorSpaceBase< RangeScalar > > | rangeScalarProdVecSpc () const =0 |
| | |
| virtual Teuchos::RCP< const ScalarProdVectorSpaceBase< DomainScalar > > | domainScalarProdVecSpc () const =0 |
| | |
| virtual void | euclideanApply (const EConj conj, const MultiVectorBase< DomainScalar > &X, MultiVectorBase< RangeScalar > *Y, const RangeScalar alpha, const RangeScalar beta) const =0 |
| Apply the linear operator to a multi-vector with respect to a Euclidean vector space where the scalar product is the dot product. | |
Virtual functions with default implementations. | |
| virtual void | euclideanApplyTranspose (const EConj conj, const MultiVectorBase< RangeScalar > &X, MultiVectorBase< DomainScalar > *Y, const DomainScalar alpha, const DomainScalar beta) const |
| Apply the linear operator to a multi-vector with respect to a Euclidean vector space where the scalar product is the dot product. | |
Overridden functions from OpBase | |
| Teuchos::RCP< const VectorSpaceBase< RangeScalar > > | range () const |
Returns this->rangeScalarProdVecSpc(). | |
| Teuchos::RCP< const VectorSpaceBase< DomainScalar > > | domain () const |
Returns this->domainScalarProdVecSpc(). | |
Overridden functions from LinearOpBase | |
| void | apply (const EConj conj, const MultiVectorBase< DomainScalar > &X, MultiVectorBase< RangeScalar > *Y, const RangeScalar alpha, const RangeScalar beta) const |
| Apply the non-transposed linear operator to a multi-vector using an application-specific definition of the scalar product. | |
| void | applyTranspose (const EConj conj, const MultiVectorBase< RangeScalar > &X, MultiVectorBase< DomainScalar > *Y, const DomainScalar alpha, const DomainScalar beta) const |
| Apply the transposed linear operator to a multi-vector using an application-specific definition of the scalar product. | |
Protected Member Functions | |
| void | euclidean_apply_impl (const EConj conj, const MultiVectorBase< DomainScalar > &X, MultiVectorBase< RangeScalar > *Y, const RangeScalar alpha, const RangeScalar beta) const |
| void | euclidean_applyTranspose_impl (const EConj conj, const MultiVectorBase< RangeScalar > &X, MultiVectorBase< DomainScalar > *Y, const DomainScalar alpha, const DomainScalar beta) const |
Related Functions | |
| (Note that these are not member functions.) | |
| void | euclideanApply (const EuclideanLinearOpBase< Scalar > &M, const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, MultiVectorBase< Scalar > *Y, const Scalar alpha, const Scalar beta) |
Call EuclideanLinearOpBase<Scalar>::euclideanApply() as a global function call (for a single scalar type). | |
Most generic subclass implementations should derive from this base interface since it allows an application-specific definition of the scalar product. Note that almost every concrete implementation of MultiVectorBase should derive from this interface.
ToDo: Finish Documentation!
Definition at line 49 of file Thyra_EuclideanLinearOpBaseDecl.hpp.
| virtual Teuchos::RCP<const ScalarProdVectorSpaceBase<RangeScalar> > Thyra::EuclideanLinearOpBase< RangeScalar, DomainScalar >::rangeScalarProdVecSpc | ( | ) | const [pure virtual] |
| virtual Teuchos::RCP<const ScalarProdVectorSpaceBase<DomainScalar> > Thyra::EuclideanLinearOpBase< RangeScalar, DomainScalar >::domainScalarProdVecSpc | ( | ) | const [pure virtual] |
| virtual void Thyra::EuclideanLinearOpBase< RangeScalar, DomainScalar >::euclideanApply | ( | const EConj | conj, | |
| const MultiVectorBase< DomainScalar > & | X, | |||
| MultiVectorBase< RangeScalar > * | Y, | |||
| const RangeScalar | alpha, | |||
| const RangeScalar | beta | |||
| ) | const [pure virtual] |
Apply the linear operator to a multi-vector with respect to a Euclidean vector space where the scalar product is the dot product.
Preconditions:
this->applySupports(conj)==true | void Thyra::EuclideanLinearOpBase< RangeScalar, DomainScalar >::euclideanApplyTranspose | ( | const EConj | conj, | |
| const MultiVectorBase< RangeScalar > & | X, | |||
| MultiVectorBase< DomainScalar > * | Y, | |||
| const DomainScalar | alpha, | |||
| const DomainScalar | beta | |||
| ) | const [virtual] |
Apply the linear operator to a multi-vector with respect to a Euclidean vector space where the scalar product is the dot product.
Preconditions:
this->applyTransposeSupports(conj)==true The default implementation throws an exception with a very good error message.
Definition at line 43 of file Thyra_EuclideanLinearOpBase.hpp.
| Teuchos::RCP< const VectorSpaceBase< RangeScalar > > Thyra::EuclideanLinearOpBase< RangeScalar, DomainScalar >::range | ( | ) | const [virtual] |
Returns this->rangeScalarProdVecSpc().
Implements Thyra::LinearOpBase< RangeScalar, DomainScalar >.
Definition at line 64 of file Thyra_EuclideanLinearOpBase.hpp.
| Teuchos::RCP< const VectorSpaceBase< DomainScalar > > Thyra::EuclideanLinearOpBase< RangeScalar, DomainScalar >::domain | ( | ) | const [virtual] |
Returns this->domainScalarProdVecSpc().
Implements Thyra::LinearOpBase< RangeScalar, DomainScalar >.
Definition at line 71 of file Thyra_EuclideanLinearOpBase.hpp.
| void Thyra::EuclideanLinearOpBase< RangeScalar, DomainScalar >::apply | ( | const EConj | conj, | |
| const MultiVectorBase< DomainScalar > & | X, | |||
| MultiVectorBase< RangeScalar > * | Y, | |||
| const RangeScalar | alpha, | |||
| const RangeScalar | beta | |||
| ) | const [virtual] |
Apply the non-transposed linear operator to a multi-vector using an application-specific definition of the scalar product.
ToDo: Finish Documentation!
Implements Thyra::LinearOpBase< RangeScalar, DomainScalar >.
Definition at line 79 of file Thyra_EuclideanLinearOpBase.hpp.
| void Thyra::EuclideanLinearOpBase< RangeScalar, DomainScalar >::applyTranspose | ( | const EConj | conj, | |
| const MultiVectorBase< RangeScalar > & | X, | |||
| MultiVectorBase< DomainScalar > * | Y, | |||
| const DomainScalar | alpha, | |||
| const DomainScalar | beta | |||
| ) | const [virtual] |
Apply the transposed linear operator to a multi-vector using an application-specific definition of the scalar product.
ToDo: Finish Documentation!
Reimplemented from Thyra::LinearOpBase< RangeScalar, DomainScalar >.
Definition at line 91 of file Thyra_EuclideanLinearOpBase.hpp.
| void euclideanApply | ( | const EuclideanLinearOpBase< Scalar > & | M, | |
| const EOpTransp | M_trans, | |||
| const MultiVectorBase< Scalar > & | X, | |||
| MultiVectorBase< Scalar > * | Y, | |||
| const Scalar | alpha, | |||
| const Scalar | beta | |||
| ) | [related] |
Call EuclideanLinearOpBase<Scalar>::euclideanApply() as a global function call (for a single scalar type).
Calls M.euclideanApply(...,X,Y,alpha,beta) or M.euclideanApplyTranspose(...,X,Y,alpha,beta).
Definition at line 171 of file Thyra_EuclideanLinearOpBaseDecl.hpp.
1.4.7