class HCL_UMinHess_d : public HCL_Base

HCL_UMinHess_d is the base class for unconstrained minimizers which use first and second derivatives

Inheritance:


Public Methods

virtual HCL_EvaluateFunctionalHess_d& LastEval ()
LastEval returns a reference to the functional's evaluation object at the most recent point
virtual int Minimize ( HCL_FunctionalHess_d & f, HCL_Vector_d & x )
Minimize attempts to find a local minimizer of the functional f, using x as a starting guess
virtual Table& Parameters ()
Access to parameter table
virtual void SetScaling ( HCL_LinearOpAdj_d * S, HCL_LinearSolver_d * lsolver )
SetScaling defines a new inner product in terms of a symmetric, positive definite operator S: <x,y> = (x,Sy)
virtual void SetScaling ( HCL_LinearOpAdjInv_d * S )
Alternate version of SetScaling.
virtual void UnSetScaling ()
UnSetScaling returns the inner product to the default.

Public

enumreturn codes (TermCode)
PossibleMinimizer
Possible minimizer
PossibleConvergence
Possible convergence
LineSearchFailed
Line search failed
PossibleDivergence
Possible divergence
IterationLimit
Iteration limit reached
InaccurateGradient
Possible inaccurate gradient calculation

Inherited from HCL_Base:

Public Methods

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

Private Fields

int ReferenceCount

Documentation

HCL_UMinHess_d is the base class for unconstrained minimizers which use first and second derivatives. In the context of HCL, this means that an object of this type will minimize a {HCL_FunctionalHess_d}.

All objects derived from HCL_UMinHess_d have three methods:

enum return codes (TermCode)

PossibleMinimizer
Possible minimizer. The algorithm succeeded in reducing the norm of the gradient below the tolerance specified by the user.

PossibleConvergence
Possible convergence. The algorithm took a step shorter than the minimum step length specified by the user.

LineSearchFailed
Line search failed. The line search was unable to reduce the function value.

PossibleDivergence
Possible divergence. The algorithm took 5 consecutive steps exceeding the maximum step length specified by the user.

IterationLimit
Iteration limit reached. The algorithm was unable to meet the stopping criteria in the number of iterations allowed.

InaccurateGradient
Possible inaccurate gradient calculation. The negative gradient was not a descent direction. Note that the minimizer does perform any other check of the accuracy of the gradient calculation. The HCL_FunctionalGrad_d class has a method CheckGrad to compare the analytic gradient against finite differences, but the implementor of the functional is responsible for calling this method explicitly.

virtual Table& Parameters()
Access to parameter table. Algorithmic parameters can be accessed with Parameters().GetValue( "NAME",val ) or changed with Parameters().PutValue( "NAME",val ).

virtual HCL_EvaluateFunctionalHess_d& LastEval()
LastEval returns a reference to the functional's evaluation object at the most recent point. Thus, after the minimization has completed, the calling routine has access to the last function value, gradient, and Hessian.

virtual void SetScaling( HCL_LinearOpAdj_d * S, HCL_LinearSolver_d * lsolver )
SetScaling defines a new inner product in terms of a symmetric, positive definite operator S: <x,y> = (x,Sy)

virtual void SetScaling( HCL_LinearOpAdjInv_d * S )
Alternate version of SetScaling.

virtual void UnSetScaling()
UnSetScaling returns the inner product to the default.

virtual int Minimize( HCL_FunctionalHess_d & f, HCL_Vector_d & x )
Minimize attempts to find a local minimizer of the functional f, using x as a starting guess. The return value is the termination code, as given above.


Direct child classes:
HCL_UMinTR_d
HCL_UMinHessMethod_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