HCL_OpDefaultEval_d is the default "evaluation" class for nonlinear operators
![]() | HCL_OpDefaultEval_d ( const HCL_Op_d * op, const HCL_Vector_d & in ) Usual constructor; requires a pointer to an operator and a reference to the input vector |
![]() | Domain () const Domain returns a reference to the domain of the underlying operator |
![]() | Range () const Range returns a reference to the range of the underlying operator. |
![]() | Image ( HCL_Vector_d & y ) const Image computes the image of the operator. |
![]() | Deriv () const Deriv computes the derivative of the operator |
![]() | SecondDeriv () const SecondDeriv computes the second derivative of the operator |
![]() | Write ( ostream & str ) const Write prints a description of the object |
![]() | DerivImage ( const HCL_Vector_d & dx, HCL_Vector_d & dy ) const DerivImage computes the image of the derivative on dx, yielding dy |
![]() | DerivAdjImage ( const HCL_Vector_d & dy, HCL_Vector_d & dx ) const DerivAdjImage computes the image of the adjoint of the derivative on dy, yielding dx |
![]() | DerivInvImage ( const HCL_Vector_d & dy, HCL_Vector_d & dx ) const DerivInvImage computes the image of the inverse of the derivative on dy, yielding dx |
![]() | DerivInvAdjImage ( const HCL_Vector_d & dx, HCL_Vector_d & dy ) const DerivInvAdjImage computes the image of the inverse of the adjoint of the derivative on dx, yielding dy |
![]() | SecondDerivImage ( const HCL_Vector_d & dx1, const HCL_Vector_d & dx2, HCL_Vector_d & dy ) const SecondDerivImage computes the image of the second derivative on (dx1,dx2), yielding dy |
![]() | SecondDerivPartialAdjImage (const HCL_Vector_d & dx1, const HCL_Vector_d & dy, HCL_Vector_d & dx2 ) const SecondDerivPartialAdjImage computes the image of the so-called "partial adjoint" of the second derivative on (dx1,dy), yielding dx1 |
HCL_OpDefaultEval_d is the default "evaluation" class for nonlinear operators. Ifis a nonlinear operator represented by an instance of HCL_Op_d, then the corresponding evaluation class represents the triple
In many cases, there is a significant efficiency advantage to creating a specific evaluation class for a given operator, since then intermediate calculations that are common to the image, derivative, and second derivative can be re-used. However, if there is no such efficiency advantage to be gained, then the default evaluation class HCL_OpDefaultEval_d can be used.
The various mechanisms for implementing evaluation classes, including the use of this default class, are explained in detail, with concrete examples, in the report
"Implementing operators in HCL", Technical Report 99-22, Department of Computational and Applied Mathematics, Rice University, Houston, TX 77251-1892.
available on the HCL home page.
This class is concrete: all of its methods are implemented, and are not intended to be overridden.
virtual void DerivAdjImage( const HCL_Vector_d & dy, HCL_Vector_d & dx ) const
virtual void DerivInvImage( const HCL_Vector_d & dy, HCL_Vector_d & dx ) const
virtual void DerivInvAdjImage( const HCL_Vector_d & dx, HCL_Vector_d & dy ) const
virtual void SecondDerivImage( const HCL_Vector_d & dx1, const HCL_Vector_d & dx2, HCL_Vector_d & dy ) const
virtual void SecondDerivPartialAdjImage(const HCL_Vector_d & dx1, const HCL_Vector_d & dy, HCL_Vector_d & dx2 ) const
HCL_OpDefaultEval_d( const HCL_Op_d * op, const HCL_Vector_d & in )
virtual HCL_VectorSpace_d& Domain() const
virtual HCL_VectorSpace_d& Range() const
virtual void Image( HCL_Vector_d & y ) const
virtual HCL_LinearOp_d* Deriv() const
virtual HCL_BiLinearOp_d* SecondDeriv() const
virtual ostream& Write( ostream & str ) const
alphabetic index hierarchy of classes
this page has been generated automatically by doc++
(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de