Interior-point-optimisation  1.0-1
Interior-pointoptimisationlibrary
ipo_function::concrete Namespace Reference

Namespace to hold concrete functions. More...

Classes

class  LinearCombination
 This class provides function objects representing linear combinations of the elements of their vector arguments. More...
 
class  NullFunction
 This class represents a null function. More...
 
class  QuadraticCombination
 This class provides function objects representing quadratic combinations of the elements of their matrix of arguments. More...
 
class  Sum
 This class has two purposes. More...
 
class  SumOfSquares
 This class has two purposes. More...
 

Detailed Description

Namespace to hold concrete functions.

These can be used in convex optimisation. They also internally show how a concrete function may sensibly be built.

Any function must minimally derive from ipo_function::Function. However, this is not very efficient because (1) the function, gradient and Hessian have to be computed independently, and (2) the gradient and Hessian can only be found using difference quotients unless specific gradient and hessian functions are supplied.

A better approach is to derive a concrete function also from ipo_Function::DerivativesEstimates. Then gradient() and hessian() must also be defined. It is not essential to override setVector() to compute functionValue, functionGradient and functionHessian. But if you override it the computation of the gradient and Hessian during optimisation will be substantially more efficient.