This class represents an "evaluation" object that will be created by a HCL_FunctionalHess_d object to implement the value, gradient, and Hessian of the functional at a point
![]() | Domain () Domain returns a reference to the domain of the underlying function. |
![]() | Gradient ( HCL_Vector_d & g ) Gradient computes the gradient of the function |
![]() | Hessian () Hessian computes the Hessian of the function |
![]() | HessianRef () HessianRef computes the Hessian of the function and returns a reference to it |
![]() | Value () Value computes the value of the function |
![]() | Write ( ostream & str ) Debugging information |
This class represents an "evaluation" object that will be created by a HCL_FunctionalHess_d object to implement the value, gradient, and Hessian of the functional at a point. The purpose of having an evaluation object is to deal with the common situation in which the functional value and derivatives share some intermediate calculations. A typical implementation of such a functional involves defining an evaluation object whose constructor performs these intermediate calculations. The Value method then completes the computation of the functional value, while the Gradient and Hessian method complete the calculation of the derivatives.The functional value, gradient, and Hessian should then be accessed through the ValueRef, GradientRef, and HessianRef methods. These are methods implemented in the base class (i.e. they do not need to be redefined in a derived class). The ValueRef method invokes Value to get the function value, stores it, and sets a flag to indicate that the value has already been computed. On subsequent calls, ValueRef merely returns the stored value. GradientRef and HessianRef work in a similar fashion; note that these method manage the storage of the gradient and Hessian, so the calling program does not need to allocate storage.
Here is a summary of the primary methods of this class:
- Domain Returns a reference to the domain of the underlying functional.
- Value Computes the value of the functional at the point at which this object was created. Must be implemented by the creator of a concrete class.
- ValueRef Calls Value, if necessary, to compute the functional value, saves it, and returns it. Implemented in the base class.
- Gradient Computes the gradient of the functional at the point at which this object was created. Must be implemented by the creator of a concrete class.
- GradientRef Calls Gradient, if necessary, to compute the functional gradient, saves it, and returns a reference to it. Implemented in the base class.
- Hessian Computes the Hessian of the functional at the point at which this object was created. Must be implemented by the creator of a concrete class.
- HessianRef Calls Hessian, if necessary, to compute the functional Hessian, saves it, and returns a reference to it. Implemented in the base class.
virtual double Value()
virtual void Gradient( HCL_Vector_d & g )
virtual HCL_LinearOp_d* Hessian()
virtual const HCL_LinearOp_d& HessianRef()
virtual ostream& Write( ostream & str )
this page has been generated automatically by doc++
(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de