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"
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, \
Base class for all linear operators.
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(...).
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).
Interface for a collection of column vectors called a multi-vector.
EOpTransp
Enumeration for determining how a linear operator is applied. `*.