hpp-core 5.1.0
Implement basic classes for canonical path planning for kinematic chains.
Loading...
Searching...
No Matches
hpp::core::pathOptimization::QuadraticProgram Struct Reference

#include <hpp/core/path-optimization/quadratic-program.hh>

Public Types

typedef Eigen::JacobiSVD< matrix_tDecomposition_t
 
typedef Eigen::LLT< matrix_t, Eigen::Lower > LLT_t
 

Public Member Functions

 QuadraticProgram (size_type inputSize, bool useProxqp=true)
 
 QuadraticProgram (const QuadraticProgram &QP, const LinearConstraint &lc, bool useProxqp=true)
 
 QuadraticProgram (const QuadraticProgram &QP)
 
 ~QuadraticProgram ()
 
void accuracy (value_type acc)
 
value_type accuracy () const
 
void addRows (const std::size_t &nbRows)
 
Program subject to linear equality constraints.
void reduced (const LinearConstraint &lc, QuadraticProgram &QPr) const
 
void decompose ()
 
void solve ()
 
Program subject to linear equality and inequality constraints.
void computeLLT ()
 
double solve (const LinearConstraint &ce, const LinearConstraint &ci)
 

Public Attributes

value_type accuracy_
 
bool useProxqp_
 
Model
matrix_t H
 
vector_t b
 
bool bIsZero
 
Data (for inequality constraints)
LLT_t llt
 
value_type trace
 
Eigen::VectorXi activeConstraint
 
int activeSetSize
 
Data (for equality constraints)
Decomposition_t dec
 
vector_t xStar
 

Detailed Description

Quadratic program

This class stores a quadratic cost defined by \( \frac{1}{2} x^T H x + b^T x \) where \( (H, b) \) are the parameters.

It can then solve the two following program:

  • Program subject to linear equality constraints

    \begin{eqnarray*} \min & \frac{1}{2} x^T H x + b^T x \\ A_0 x = b_0 \end{eqnarray*}

    This is done via reduced, decompose and solve methods
  • Program subject to linear equality and inequality constraints:

    \begin{eqnarray*} \min & \frac{1}{2} x^T H x + b^T x \\ A_0 x = b_0 \\ A_1 x \ge b_1 \end{eqnarray*}

    This is done via computeLLT and solve methods and uses quadprog

The documentation for this struct was generated from the following file: