ConstrainedOptPack: C++ Tools for Constrained (and Unconstrained) Optimization
Version of the Day
|
This class provides a mix-in interface for allowing subclass merit functions to compute the directional 1D derivative at a base point. More...
#include <ConstrainedOptPack_MeritFuncNLPDirecDeriv.hpp>
Public Member Functions | |
virtual | ~MeritFuncNLPDirecDeriv () |
To be overridden by subclasses | |
virtual value_type | calc_deriv (const Vector &Gf_k, const Vector *c_k, const Vector *h_k, const Vector *hl, const Vector *hu, const Vector &d_k)=0 |
Calculate d(phi(x_k + alpha_k*d_k))/d(alpha_k) at alpha_k = 0. More... | |
This class provides a mix-in interface for allowing subclass merit functions to compute the directional 1D derivative at a base point.
The quantities Gf(xo) (gradient of f(xo)) c(xo), h(xo) and d are used by several types of merit functions to calculate the derivative of:
d(phi(x_k + alpha_k*d_k))/d(alpha_k) at alpha_k = 0.
It is generally assumed that d satisfies Gc_k'*d_k + c_k = 0 otherwise the merit function would need Gc_k to compute this directional derivative properly.
Definition at line 61 of file ConstrainedOptPack_MeritFuncNLPDirecDeriv.hpp.
|
inlinevirtual |
Definition at line 65 of file ConstrainedOptPack_MeritFuncNLPDirecDeriv.hpp.
|
pure virtual |
Calculate d(phi(x_k + alpha_k*d_k))/d(alpha_k) at alpha_k = 0.
The value is stored internally by the subclass are returned by its deriv() member usually. The value is also returned from this function.
If the sizes of the vectors input do not aggree then #std::length_error# exception will be thrown.
Implemented in ConstrainedOptPack::MeritFuncNLPModL1, and ConstrainedOptPack::MeritFuncNLPL1.