KrisLibrary
1.0.0
|
A scalar field v(x) = min_y c(x)^T y s.t. q(x) <= A(x)y <= p(x), l(x) <= y <= u(x) where c,A,q,p,l, and u are smooth functions. More...
#include <LPOptimumFunction.h>
Public Member Functions | |
virtual void | InitLP (const Vector &x) |
virtual void | UpdateLP (const Vector &x) |
virtual bool | LPJacobianC (const Vector &x, Matrix &Jc) |
virtual bool | LPJacobianC (const Vector &x, SparseMatrix &Jc) |
virtual bool | LPJacobianA_i (const Vector &x, int i, Matrix &JAi) |
virtual bool | LPJacobianA_i (const Vector &x, int i, SparseMatrix &JAi) |
virtual bool | LPJacobianP_i (const Vector &x, int i, Vector &Jpi) |
virtual bool | LPJacobianQ_i (const Vector &x, int i, Vector &Jqi) |
virtual bool | LPJacobianL_j (const Vector &x, int j, Vector &Jlj) |
virtual bool | LPJacobianU_j (const Vector &x, int j, Vector &Juj) |
virtual void | UpdateGLPK (const Vector &x) |
virtual std::string | Label () const |
virtual void | PreEval (const Vector &x) |
virtual Real | Eval (const Vector &x) |
virtual void | Gradient (const Vector &x, Vector &grad) |
virtual Real | Gradient_i (const Vector &x, int i) |
Public Member Functions inherited from Math::ScalarFieldFunction | |
virtual std::string | VariableLabel (int i) const |
virtual Real | operator() (const Vector &x) |
virtual Real | DirectionalDeriv (const Vector &x, const Vector &h) |
virtual void | Hessian (const Vector &x, Matrix &H) |
virtual Real | Hessian_ij (const Vector &x, int i, int j) |
virtual Real | DirectionalDeriv2 (const Vector &x, const Vector &h) |
Public Attributes | |
bool | initialized |
bool | sparse |
LinearProgram | lp |
LinearProgram_Sparse | lps |
GLPKInterface | glpk |
LinearProgram::Result | solveResult |
Vector | yopt |
A scalar field v(x) = min_y c(x)^T y s.t. q(x) <= A(x)y <= p(x), l(x) <= y <= u(x) where c,A,q,p,l, and u are smooth functions.
Subclasses must overload UpdateLP and LPJacobian[Z] if Z depends on x. For faster updating, use InitLP to set up all constant members of the LP and in UpdateLP, only change the members that depend on x.
|
virtual |
Subclasses may overload this for a sparse update – may also help with warm start.