42 #ifndef THYRA_LINEAR_OP_BASE_DEF_HPP 43 #define THYRA_LINEAR_OP_BASE_DEF_HPP 45 #include "Thyra_LinearOpBase_decl.hpp" 46 #include "Thyra_MultiVectorBase.hpp" 47 #include "Thyra_VectorSpaceBase.hpp" 56 template<
class Scalar>
57 RCP<const LinearOpBase<Scalar> >
72 template<
class Scalar>
82 M.
apply(M_trans, X, Y, alpha, beta);
90 #define THYRA_LINEAR_OP_BASE_INSTANT(SCALAR) \ 92 template class LinearOpBase<SCALAR >; \ 94 template void apply( \ 95 const LinearOpBase<SCALAR > &M, \ 96 const EOpTransp M_trans, \ 97 const MultiVectorBase<SCALAR > &X, \ 98 const Ptr<MultiVectorBase<SCALAR > > &Y, \ 104 #endif // THYRA_LINEAR_OP_BASE_DEF_HPP EOpTransp
Enumeration for determining how a linear operator is applied. `*.
Interface for a collection of column vectors called a multi-vector.
Base class for all linear operators.
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.
virtual RCP< const LinearOpBase< Scalar > > clone() const
Clone the linear operator object (if supported).