10#ifndef THYRA_SCALED_ADJOINT_LINEAR_OP_BASE_HPP 
   11#define THYRA_SCALED_ADJOINT_LINEAR_OP_BASE_HPP 
   13#include "Thyra_ScaledAdjointLinearOpBase_decl.hpp" 
   14#include "Thyra_LinearOpBase.hpp" 
   48  const RCP<
const LinearOpBase<Scalar> > &Op,
 
   51  RCP<
const LinearOpBase<Scalar> > *origOp
 
   60  RCP<const ScaledAdjointLinearOpBase<Scalar> >
 
   63    *scalar = saOp->overallScalar();
 
   64    *transp = saOp->overallTransp();
 
   65    *origOp = saOp->getOrigOp();
 
   79#define THYRA_SCALED_ADJOINT_LINEAR_OP_BASE_INSTANT(SCALAR) \ 
   81  template void unwrap( \ 
   82    const LinearOpBase<SCALAR > &Op, \ 
   85    const LinearOpBase<SCALAR >* *origOp \ 
   88  template void unwrap( \ 
   89    const RCP<const LinearOpBase<SCALAR > > &Op, \ 
   92    RCP<const LinearOpBase<SCALAR > > *origOp \ 
Base class for all linear operators.
 
Base class for LinearOpBase decorator subclasses that wrap a LinearOpBase object and adds on an extra...
 
virtual Scalar overallScalar() const =0
Return the overall scale factor.
 
virtual RCP< const LinearOpBase< Scalar > > getOrigOp() const =0
Return the const original linear operator origOp.
 
virtual EOpTransp overallTransp() const =0
Return the overall transpose (adjoint) enum.
 
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)
 
void unwrap(const LinearOpBase< Scalar > &Op, Scalar *scalar, EOpTransp *transp, const LinearOpBase< Scalar > **origOp)
Extract the overallScalar, overallTransp and const origOp from a const LinearOpBase object.
 
EOpTransp
Enumeration for determining how a linear operator is applied. `*.
 
@ NOTRANS
Use the non-transposed operator.
 
T_To & dyn_cast(T_From &from)