Interior-point-optimisation  1.0-1
Interior-pointoptimisationlibrary
ipo::detail Namespace Reference

Namespace for classes that handle details of interior-point optimisation that are not ordinarily accessed directly to set up and solve a convex optimisation problem. More...

Classes

class  BarrierFunction
 Function for the logarithmic barrier. More...
 
class  LineSearch
 Backtracking line search. More...
 
class  ModelBase
 Abstract base class for model. More...
 
class  ModelFunction
 Abstract base class for Objective and Constraint. More...
 
class  NewtonDescent
 Newton descent method. More...
 
class  PhaseIModel
 Model used for finding an initial feasible solution in phase I of interior-pont optimisation. More...
 
class  SharedFunctionPtr
 Shared pointer to ipo::Function object. More...
 
class  Var
 Abstract base class for Variable and Array;. More...
 

Functions

std::tuple< gsl::matrix, double > modifiedCholeskyDecomp (gsl::matrix const &matrix, double maxoffl)
 Modified in-place Cholesky decomposition using the method of Gill, Murray and Wright (1981) to deal with cases where matrix is not positive definite. More...
 
gsl::matrix modelHessian (gsl::matrix &matrix)
 Find a Cholesky decomposition (both upper and lower triangles returned in matrix) of a matrix + mu * I, where matrix is a Hessian (assumed symmetric) matrix and mu is chosen to ensure that matrix + mu * I is safely poitive definite and is zero if matrix is already safely positive definite. More...
 

Detailed Description

Namespace for classes that handle details of interior-point optimisation that are not ordinarily accessed directly to set up and solve a convex optimisation problem.

Function Documentation

gsl::matrix ipo::detail::modelHessian ( gsl::matrix &  matrix)

Find a Cholesky decomposition (both upper and lower triangles returned in matrix) of a matrix + mu * I, where matrix is a Hessian (assumed symmetric) matrix and mu is chosen to ensure that matrix + mu * I is safely poitive definite and is zero if matrix is already safely positive definite.

In the algorithm matrix is modified to matrix + mu * I. See Dennis and Schnabel, 1996, Algorithm A.5.5.1.

Parameters
matrixThe Hessian
Returns
matrix The Hessian, possibly with mu * I added
The Cholesky decomposition (as a symmetric matrix, with both upper and lower triangles)

Definition at line 102 of file GSL.cc.

References ipo::format::infinity, and modifiedCholeskyDecomp().

Referenced by ipo::detail::NewtonDescent::operator()().

std::tuple< gsl::matrix, double > ipo::detail::modifiedCholeskyDecomp ( gsl::matrix const &  matrix,
double  maxoffl 
)

Modified in-place Cholesky decomposition using the method of Gill, Murray and Wright (1981) to deal with cases where matrix is not positive definite.

See Dennis and Schnabel, 1996: Algorithm A.5.5.2.

This should not be used directly but through modelHessian()

Parameters
matrixThe matrix (assumed symmetric) to decompose in place
maxofflA parameter generated by modelHessian
Returns
Cholesky decomoposition (in lower triangle) and maximum of diagonal

Definition at line 29 of file GSL.cc.

References ipo::format::infinity.

Referenced by modelHessian().