class HCL_EvaluateOpDerivAdj_d : public HCL_Base

This class represents an "evaluation" object that will be created by a HCL_OpDerivAdj_d object to implement the image and derivative of the operator at a point

Inheritance:


Public Methods

virtual HCL_LinearOp_d* Deriv ()
Deriv computes the derivative of the operator
virtual HCL_LinearOpAdj_d* DerivAdj ()
DerivAdj computes the derivative, as a linear operator with adjoint, of the operator
virtual const HCL_LinearOpAdj_d& DerivAdjRef ()
DerivAdjRef returns a reference to the derivative at this point
virtual HCL_VectorSpace_d& Domain ()
Domain returns a reference to the domain of the underlying operator
virtual void Image ( HCL_Vector_d & y )
Image computes the image of the operator.
virtual const HCL_Vector_d& ImageRef ()
ImageRef returns a reference to the image of the operator at this point
virtual HCL_VectorSpace_d& Range ()
Range returns a reference to the range of the underlying operator.
virtual ostream& Write ( ostream & str )
Debugging information

Inherited from HCL_Base:

Public Methods

int Count()
void DecCount()
void IncCount()

Private Fields

int ReferenceCount

Documentation

This class represents an "evaluation" object that will be created by a HCL_OpDerivAdj_d object to implement the image and derivative of the operator at a point. The purpose of having an evaluation object is to deal with the common situation in which the operator image and derivatives share some intermediate calculations. A typical implementation of such an operator involves defining an evaluation object whose constructor performs these intermediate calculations. The Image method then completes the computation of the functional value, while the DerivAdj method completes the calculation of the derivative.

The operator image and derivative should then be accessed through the ImageRef and DerivAdjRef methods. These are methods implemented in the base class (i.e. they do not need to be redefined in a derived class). The ImageRef method invokes Image to get the image and returns a reference to it. On subsequent calls, ImageRef merely references the stored value. DerivAdjRef works in a similar fashion; note that these method manage the storage; the calling program does not need to allocate storage.

Here is a summary of the primary methods of this class:

virtual HCL_VectorSpace_d& Domain()
Domain returns a reference to the domain of the underlying operator

virtual HCL_VectorSpace_d& Range()
Range returns a reference to the range of the underlying operator.

virtual void Image( HCL_Vector_d & y )
Image computes the image of the operator.

virtual const HCL_Vector_d& ImageRef()
ImageRef returns a reference to the image of the operator at this point. The user has a choice of calling Image, in which case the storage for the result is managed by the calling routine, or calling ImageRef, in which the Evaluation object manages the storage.

virtual HCL_LinearOp_d* Deriv()
Deriv computes the derivative of the operator. Note that this method constructs a HCL_LinearOp_d, which the calling program is responsible for deleting with HCL_delete.

virtual const HCL_LinearOpAdj_d& DerivAdjRef()
DerivAdjRef returns a reference to the derivative at this point. The programmer has a choice of calling DerivAdj, in which case the calling routine is responsible for managing the storage, or calling DerivAdjRef, in which case the Evaluation object does.

virtual HCL_LinearOpAdj_d* DerivAdj()
DerivAdj computes the derivative, as a linear operator with adjoint, of the operator. Note that this method constructs a HCL_LinearOp_d, which the calling program is responsible for deleting with HCL_delete.

virtual ostream& Write( ostream & str )
Debugging information. Write should be implemented to print a description of the object that will be useful for debugging. If a complete description is lengthy, an implementor should consider just printing out a useful subset. This method will likely be used to send information to the screen when a error condition is encountered.


Direct child classes:
HCL_EvaluateOpDeriv2Adj_d

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