/** \page UnconstrainedObject Declaring objective functions Nonlinear programming problems are classified according to the availability of derivative information. The three categories

- NLP0 - no available derivative information,
- NLP1 - analytic first derivatives available, and
- NLP2 - analytic first and second derivatives available

The NLPX classes are abstract base classes for NLFX. Listed below are the constructors for the objective function.

- \code typedef void (*USERFCN0)(int, const ColumnVector&, real&, int&); \endcode In the following code fragment, we show the calling sequence for a trigonometric function of dimension \a n. \code trig(n, x, f, result); \endcode where \a x is the current point, \a f is the value of the objective function, and \a result is an output argument.
- \code typedef void (*USERFCN1)(int, int, const ColumnVector&, real&, ColumnVector&, int&); \endcode The function call for the Rosenbrock problem with analytic derivatives is \code rosen(mode, n, x, f, g, result); \endcode where \a g is the gradient of the objective function.
- \code typedef void (*USERFCN2)(int, int, const ColumnVector&, real&, ColumnVector&, SymmetricMatrix&, int&); \endcode Similary, the function call for the illumination problem with analytic derivatives and Hessian is \code illum2(mode, n, x, f, g, H, result); \endcode where \a H is the Hessian of the objective function.

Next Section: Bound-constrained minimization | Back to Unconstrained minimization

Last revised June 30, 2006 */