qp_solver_collection
Public Member Functions | Public Attributes | Protected Attributes | List of all members
QpSolverCollection::QpSolverHpipm Class Reference

QP solver HPIPM. More...

#include <QpSolverCollection.h>

Inheritance diagram for QpSolverCollection::QpSolverHpipm:
Inheritance graph
[legend]
Collaboration diagram for QpSolverCollection::QpSolverHpipm:
Collaboration graph
[legend]

Public Member Functions

 QpSolverHpipm ()
 Constructor. More...
 
 ~QpSolverHpipm ()
 Destructor. More...
 
virtual Eigen::VectorXd solve (int dim_var, int dim_eq, int dim_ineq, Eigen::Ref< Eigen::MatrixXd > Q, const Eigen::Ref< const Eigen::VectorXd > &c, const Eigen::Ref< const Eigen::MatrixXd > &A, const Eigen::Ref< const Eigen::VectorXd > &b, const Eigen::Ref< const Eigen::MatrixXd > &C, const Eigen::Ref< const Eigen::VectorXd > &d, const Eigen::Ref< const Eigen::VectorXd > &x_min, const Eigen::Ref< const Eigen::VectorXd > &x_max) override
 Solve QP. More...
 
- Public Member Functions inherited from QpSolverCollection::QpSolver
 QpSolver ()
 Constructor. More...
 
void printInfo (bool verbose=false, const std::string &header="") const
 Print information. More...
 
virtual Eigen::VectorXd solve (QpCoeff &qp_coeff)
 Solve QP. More...
 
QpSolverType type () const
 Get QP solver type. More...
 
bool solveFailed () const
 Get whether it failed to solve the QP. More...
 

Public Attributes

double bound_limit_ = 1e10
 Maximum limits of inequality bounds. More...
 

Protected Attributes

std::unique_ptr< struct d_dense_qp_dim > qp_dim_
 
std::unique_ptr< struct d_dense_qp > qp_
 
std::unique_ptr< struct d_dense_qp_sol > qp_sol_
 
std::unique_ptr< struct d_dense_qp_ipm_arg > ipm_arg_
 
std::unique_ptr< struct d_dense_qp_ipm_ws > ipm_ws_
 
void * qp_dim_mem_ = nullptr
 
void * qp_mem_ = nullptr
 
void * qp_sol_mem_ = nullptr
 
void * ipm_arg_mem_ = nullptr
 
void * ipm_ws_mem_ = nullptr
 
double * opt_x_mem_
 
- Protected Attributes inherited from QpSolverCollection::QpSolver
QpSolverType type_ = QpSolverType::Uninitialized
 QP solver type. More...
 
bool solve_failed_ = false
 Whether it failed to solve the QP. More...
 

Additional Inherited Members

- Public Types inherited from QpSolverCollection::QpSolver
using clock = typename std::conditional< std::chrono::high_resolution_clock::is_steady, std::chrono::high_resolution_clock, std::chrono::steady_clock >::type
 

Detailed Description

QP solver HPIPM.

Definition at line 487 of file QpSolverCollection.h.

Constructor & Destructor Documentation

◆ QpSolverHpipm()

QpSolverCollection::QpSolverHpipm::QpSolverHpipm ( )

Constructor.

◆ ~QpSolverHpipm()

QpSolverCollection::QpSolverHpipm::~QpSolverHpipm ( )

Destructor.

Member Function Documentation

◆ solve()

virtual Eigen::VectorXd QpSolverCollection::QpSolverHpipm::solve ( int  dim_var,
int  dim_eq,
int  dim_ineq,
Eigen::Ref< Eigen::MatrixXd >  Q,
const Eigen::Ref< const Eigen::VectorXd > &  c,
const Eigen::Ref< const Eigen::MatrixXd > &  A,
const Eigen::Ref< const Eigen::VectorXd > &  b,
const Eigen::Ref< const Eigen::MatrixXd > &  C,
const Eigen::Ref< const Eigen::VectorXd > &  d,
const Eigen::Ref< const Eigen::VectorXd > &  x_min,
const Eigen::Ref< const Eigen::VectorXd > &  x_max 
)
overridevirtual

Solve QP.

Implements QpSolverCollection::QpSolver.

Member Data Documentation

◆ bound_limit_

double QpSolverCollection::QpSolverHpipm::bound_limit_ = 1e10

Maximum limits of inequality bounds.

Note
Setting very large values for inequality bounds will result in NaN or incorrect solutions. std::numeric_limits<double>::infinity(), std::numeric_limits<double>::max(), and even 1e20 have this problem.

Definition at line 515 of file QpSolverCollection.h.

◆ ipm_arg_

std::unique_ptr<struct d_dense_qp_ipm_arg> QpSolverCollection::QpSolverHpipm::ipm_arg_
protected

Definition at line 521 of file QpSolverCollection.h.

◆ ipm_arg_mem_

void* QpSolverCollection::QpSolverHpipm::ipm_arg_mem_ = nullptr
protected

Definition at line 527 of file QpSolverCollection.h.

◆ ipm_ws_

std::unique_ptr<struct d_dense_qp_ipm_ws> QpSolverCollection::QpSolverHpipm::ipm_ws_
protected

Definition at line 522 of file QpSolverCollection.h.

◆ ipm_ws_mem_

void* QpSolverCollection::QpSolverHpipm::ipm_ws_mem_ = nullptr
protected

Definition at line 528 of file QpSolverCollection.h.

◆ opt_x_mem_

double* QpSolverCollection::QpSolverHpipm::opt_x_mem_
protected

Definition at line 530 of file QpSolverCollection.h.

◆ qp_

std::unique_ptr<struct d_dense_qp> QpSolverCollection::QpSolverHpipm::qp_
protected

Definition at line 519 of file QpSolverCollection.h.

◆ qp_dim_

std::unique_ptr<struct d_dense_qp_dim> QpSolverCollection::QpSolverHpipm::qp_dim_
protected

Definition at line 518 of file QpSolverCollection.h.

◆ qp_dim_mem_

void* QpSolverCollection::QpSolverHpipm::qp_dim_mem_ = nullptr
protected

Definition at line 524 of file QpSolverCollection.h.

◆ qp_mem_

void* QpSolverCollection::QpSolverHpipm::qp_mem_ = nullptr
protected

Definition at line 525 of file QpSolverCollection.h.

◆ qp_sol_

std::unique_ptr<struct d_dense_qp_sol> QpSolverCollection::QpSolverHpipm::qp_sol_
protected

Definition at line 520 of file QpSolverCollection.h.

◆ qp_sol_mem_

void* QpSolverCollection::QpSolverHpipm::qp_sol_mem_ = nullptr
protected

Definition at line 526 of file QpSolverCollection.h.


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