class HCL_FunctionalDefaultEval_d : public HCL_EvaluateFunctional_d

The purpose of the class HCL_FunctionalDefaultEval is to relieve the implementor of a derived functional class from the necessity of also defining a derived evaluation class if there is no need to do so

Inheritance:


Public Methods

HCL_FunctionalDefaultEval_d ( const HCL_Functional_d * ff, const HCL_Vector_d & in )
Usual constructor; requires a pointer to a functional and a reference to the input vector
virtual HCL_VectorSpace_d& Domain () const
Domain returns a reference to the domain of the underlying functional
virtual double Value () const
Value computes the value of the functional at x.
virtual void Gradient (HCL_Vector_d & y ) const
Gradient computes the gradient of the functional at x and stores it in y
virtual HCL_LinearOp_d* Hessian () const
Hessian computes the Hessian of the functional
virtual ostream& Write ( ostream & str ) const
Debugging information

Protected Methods

virtual void HessianImage ( const HCL_Vector_d & dx, HCL_Vector_d & dy ) const
HessianImage computes the image of the Hessian on dx, yielding dy
virtual void HessianInvImage ( const HCL_Vector_d & dy, HCL_Vector_d & dx ) const
HessianInvImage computes the image of the inverse Hessian on dy, yielding dx

Inherited from HCL_EvaluateFunctional_d:

Public Methods

virtual double ValueRef() const
virtual const HCL_Vector_d& GradientRef() const
virtual const HCL_LinearOp_d& HessianRef() const

Inherited from HCL_Base:

Public Methods

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

Documentation

The purpose of the class HCL_FunctionalDefaultEval is to relieve the implementor of a derived functional class from the necessity of also defining a derived evaluation class if there is no need to do so. The purpose of the evaluation class is to represent the triple . If the implementor of the derived functional class has overridden the protected methods Value1, Gradient1, and either Hessian1 or HessianImage, HessianInvImage, then this default evaluation class can call those methods to compute the value, gradient, or Hessian of the functional. To make this possible, the constructor of HCL_FunctionalDefaultEval saves a copy of x and a pointer to the functional class.

See the documentation for HCL_EvaluateFunctional for more information about evaluation objects for functionals.

This class is concrete: all of its methods are implemented.

virtual void HessianImage( const HCL_Vector_d & dx, HCL_Vector_d & dy ) const
HessianImage computes the image of the Hessian on dx, yielding dy. This method calls the corresponding method from the underlying functional class.

virtual void HessianInvImage( const HCL_Vector_d & dy, HCL_Vector_d & dx ) const
HessianInvImage computes the image of the inverse Hessian on dy, yielding dx. This method calls the corresponding method from the underlying functional class.

HCL_FunctionalDefaultEval_d( const HCL_Functional_d * ff, const HCL_Vector_d & in )
Usual constructor; requires a pointer to a functional and a reference to the input vector

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

virtual double Value() const
Value computes the value of the functional at x.

virtual void Gradient(HCL_Vector_d & y ) const
Gradient computes the gradient of the functional at x and stores it in y

virtual HCL_LinearOp_d* Hessian() const
Hessian computes the Hessian of the functional. 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 ) const
Debugging information


This class has no child classes.

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