10#ifndef THYRA_LINEAR_OP_BASE_DEF_HPP
11#define THYRA_LINEAR_OP_BASE_DEF_HPP
13#include "Thyra_LinearOpBase_decl.hpp"
14#include "Thyra_MultiVectorBase.hpp"
15#include "Thyra_VectorSpaceBase.hpp"
43 const EOpTransp M_trans,
50 M.
apply(M_trans, X, Y, alpha, beta);
58#define THYRA_LINEAR_OP_BASE_INSTANT(SCALAR) \
60 template class LinearOpBase<SCALAR >; \
62 template void apply( \
63 const LinearOpBase<SCALAR > &M, \
64 const EOpTransp M_trans, \
65 const MultiVectorBase<SCALAR > &X, \
66 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.