|
CONOPT
|
The modeler can tell CONOPT that second order directional derivatives are available by registering a 2DDir or 2DDirLagr callback routine using COIDEF_2DDir() or COIDEF_2DDirLagr().
This optional callback routine must be registered with COIDEF_2DDirLagr(). It computes the directional second derivative for the Lagrangian as defined in the introduction to this section.
where:
X: Vector with the point in which the directional second derivatives should be computed. Defined by CONOPT.DX: Vector with the direction in which the directional second derivatives should be computed. Defined by CONOPT.U: The vector of weights on the individual constraints. The Lagrangian is defined as L = SUM(r in rows)U(row) \cdot function(row). U is defined by CONOPT when MODE = 3.D2G: Vector returning the directional second derivative. The relevant positions (see JCNM below) will be zero on entry to 2DDir.NEWPT: Indicator that describes the pair (X,DX). Is provided by CONOPT:
X have not changed but the direction DX has changed.NEWPT is provided by CONOPT as a service to the modeler. It may be used to calculate and reuse terms that depend on X but do not depend on the direction.
NODRV: Must be set to 1 if the directional second derivatives for some reason could not be computed, for example because some of them were not defined. CONOPT will not use any output from a point that returned a nonzero NODRV.N: The number of variables in the model as defined in COIDEF_NumVar(). Provided by CONOPT.M: The number of constraints in the model as defined in COIDEF_NumCon(). Provided by CONOPT.USRMEM: User memory as defined in COIDEF_UsrMem() (Only for Fortran and C API).