44 #include "Thyra_ScaledAdjointLinearOpBase.hpp" 46 class Epetra_Operator;
57 double wrappedScalar = 0.0;
58 EOpTransp wrappedTransp = NOTRANS;
59 const LinearOpBase<double> *wrappedFwdOp = NULL;
60 ::Thyra::unwrap(fwdOp, &wrappedScalar, &wrappedTransp, &wrappedFwdOp);
62 if( !(eFwdOp = dynamic_cast<const EpetraLinearOpBase*>(wrappedFwdOp)) )
69 const RCP<LinearOpBase<double> > &fwdOp,
71 const Ptr<EOpTransp> &epetraOpTransp,
72 const Ptr<EApplyEpetraOpAs> &epetraOpApplyAs,
73 const Ptr<EAdjointEpetraOp> &epetraOpAdjointSupport,
74 const Ptr<double> &epetraOpScalar
84 const RCP<
const LinearOpBase<double> > &fwdOp,
86 const Ptr<EOpTransp> &epetraOpTransp,
87 const Ptr<EApplyEpetraOpAs> &epetraOpApplyAs,
88 const Ptr<EAdjointEpetraOp> &epetraOpAdjointSupport,
89 const Ptr<double> &epetraOpScalar
92 using Teuchos::outArg;
93 double wrappedFwdOpScalar = 0.0;
94 EOpTransp wrappedFwdOpTransp = NOTRANS;
96 unwrap(fwdOp,&wrappedFwdOpScalar, &wrappedFwdOpTransp, &wrappedFwdOp);
99 EOpTransp epetra_epetraOpTransp;
100 epetraFwdOp->getEpetraOpView(epetraOp, outArg(epetra_epetraOpTransp),
101 epetraOpApplyAs, epetraOpAdjointSupport);
102 *epetraOpTransp = trans_trans(real_trans(epetra_epetraOpTransp), wrappedFwdOpTransp);
103 *epetraOpScalar = wrappedFwdOpScalar;
Abstract base class for all LinearOpBase objects that can return an Epetra_Operator view of themselve...
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)