This API is currently available in C++ and Python.

class OELineMinimize

The OELineMinimize class is a base class which defines the interface for line minimization used in different types of optimization.

The OELineMinimize class defines the following public methods:
The following classes derive from this class:


bool operator()(unsigned int n, double *p, double *d, double *g, double *k,
                double *gmin, double *alpha, OEFunc1 &fun) const

Defines the interface for finding the step size alpha for the current optimizer iteration in the search direction determined by the vector d. n is the number of optimized variables, array p and g contain initial coordinates and gradients, while array k returns gradients for the coordinates determined by the returned step size alpha. gmin contains the initial function value and returns its optimized value, and fun is a reference to optimized function object. Operator returns true when a value lower than the initial function value is found, false otherwise.


bool SetMaxStep(unsigned int , double *)

Defines the interface for determination of the maximum step size. This method has a trivial implementation in the base class, and provides a way to determine the maximum step if the specific line optimization derived from OELineMinimize needs it.


OELineMinimize *CreateCopy() const

Defines the interface for creating a copy of line minimization object.