qpmad
Eigen-based C++ QP solver.
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
qpmad::Solver Class Reference

Detailed Description

Definition at line 33 of file solver.h.

#include <solver.h>

Inheritance diagram for qpmad::Solver:
qpmad::InputParser

Public Types

enum  ReturnStatus {
  OK = 0, INCONSISTENT = 1, INFEASIBLE_EQUALITY = 2, INFEASIBLE_INEQUALITY = 3,
  MAXIMAL_NUMBER_OF_ITERATIONS = 4
}
 

Public Member Functions

ReturnStatus solve (QPVector &primal, QPMatrix &H, const QPVector &h, const QPMatrix &A, const QPVector &Alb, const QPVector &Aub)
 
ReturnStatus solve (QPVector &primal, QPMatrix &H, const QPVector &h, const QPVector &lb, const QPVector &ub, const QPMatrix &A, const QPVector &Alb, const QPVector &Aub)
 
ReturnStatus solve (QPVector &primal, QPMatrix &H, const QPVector &h, const QPVector &lb, const QPVector &ub)
 
ReturnStatus solve (QPVector &primal, QPMatrix &H, const QPVector &h, const QPVector &lb, const QPVector &ub, const QPMatrix &A, const QPVector &Alb, const QPVector &Aub, const SolverParameters &param)
 

Protected Member Functions

template<class t_MatrixType , class t_VectorType >
void parseObjective (const t_MatrixType &H, const t_VectorType &h)
 
template<class t_VectorTypelb , class t_VectorTypeub >
void parseSimpleBounds (const t_VectorTypelb &lb, const t_VectorTypeub &ub)
 
template<class t_MatrixTypeA , class t_VectorTypelb , class t_VectorTypeub >
void parseGeneralConstraints (const t_MatrixTypeA &A, const t_VectorTypelb &lb, const t_VectorTypeub &ub)
 

Protected Attributes

MatrixIndex primal_size_
 
MatrixIndex h_size_
 
MatrixIndex num_simple_bounds_
 
MatrixIndex num_general_constraints_
 

Private Member Functions

template<class t_MatrixType >
void initializeMachineryLazy (const t_MatrixType &H)
 
void chooseConstraint (const QPVector &primal, const QPVector &lb, const QPVector &ub, const QPMatrix &A, const QPVector &Alb, const QPVector &Aub, const double tolerance)
 
void checkConstraintViolation (const MatrixIndex i, const double lb_i, const double ub_i, const double ctr_i_dot_primal)
 
template<class t_VectorType , class t_MatrixType >
double getConstraintDotPrimalStepDirection (const t_VectorType &primal_step_direction, const t_MatrixType &A) const
 

Private Attributes

MatrixIndex num_constraints_
 
bool machinery_initialized_
 
ActiveSet active_set_
 
FactorizationData factorization_data_
 
QPVector dual_
 
QPVector primal_step_direction_
 
QPVector dual_step_direction_
 
QPVector general_ctr_dot_primal_
 
std::vector< ConstraintStatus::Statusconstraints_status_
 
ChosenConstraint chosen_ctr_
 

Member Enumeration Documentation

◆ ReturnStatus

Enumerator
OK 
INCONSISTENT 
INFEASIBLE_EQUALITY 
INFEASIBLE_INEQUALITY 
MAXIMAL_NUMBER_OF_ITERATIONS 

Definition at line 36 of file solver.h.

Member Function Documentation

◆ checkConstraintViolation()

void qpmad::Solver::checkConstraintViolation ( const MatrixIndex  i,
const double  lb_i,
const double  ub_i,
const double  ctr_i_dot_primal 
)
inlineprivate

Definition at line 577 of file solver.h.

◆ chooseConstraint()

void qpmad::Solver::chooseConstraint ( const QPVector primal,
const QPVector lb,
const QPVector ub,
const QPMatrix A,
const QPVector Alb,
const QPVector Aub,
const double  tolerance 
)
inlineprivate

Definition at line 533 of file solver.h.

◆ getConstraintDotPrimalStepDirection()

template<class t_VectorType , class t_MatrixType >
double qpmad::Solver::getConstraintDotPrimalStepDirection ( const t_VectorType &  primal_step_direction,
const t_MatrixType &  A 
) const
inlineprivate

Definition at line 603 of file solver.h.

◆ initializeMachineryLazy()

template<class t_MatrixType >
void qpmad::Solver::initializeMachineryLazy ( const t_MatrixType &  H)
inlineprivate

Definition at line 519 of file solver.h.

◆ parseGeneralConstraints()

template<class t_MatrixTypeA , class t_VectorTypelb , class t_VectorTypeub >
void qpmad::InputParser::parseGeneralConstraints ( const t_MatrixTypeA &  A,
const t_VectorTypelb &  lb,
const t_VectorTypeub &  ub 
)
inlineprotectedinherited

Definition at line 81 of file input_parser.h.

◆ parseObjective()

template<class t_MatrixType , class t_VectorType >
void qpmad::InputParser::parseObjective ( const t_MatrixType &  H,
const t_VectorType &  h 
)
inlineprotectedinherited

Definition at line 36 of file input_parser.h.

◆ parseSimpleBounds()

template<class t_VectorTypelb , class t_VectorTypeub >
void qpmad::InputParser::parseSimpleBounds ( const t_VectorTypelb &  lb,
const t_VectorTypeub &  ub 
)
inlineprotectedinherited

Definition at line 57 of file input_parser.h.

◆ solve() [1/4]

ReturnStatus qpmad::Solver::solve ( QPVector primal,
QPMatrix H,
const QPVector h,
const QPMatrix A,
const QPVector Alb,
const QPVector Aub 
)
inline

Definition at line 47 of file solver.h.

◆ solve() [2/4]

ReturnStatus qpmad::Solver::solve ( QPVector primal,
QPMatrix H,
const QPVector h,
const QPVector lb,
const QPVector ub,
const QPMatrix A,
const QPVector Alb,
const QPVector Aub 
)
inline

Definition at line 60 of file solver.h.

◆ solve() [3/4]

ReturnStatus qpmad::Solver::solve ( QPVector primal,
QPMatrix H,
const QPVector h,
const QPVector lb,
const QPVector ub 
)
inline

Definition at line 75 of file solver.h.

◆ solve() [4/4]

ReturnStatus qpmad::Solver::solve ( QPVector primal,
QPMatrix H,
const QPVector h,
const QPVector lb,
const QPVector ub,
const QPMatrix A,
const QPVector Alb,
const QPVector Aub,
const SolverParameters param 
)
inline

Definition at line 88 of file solver.h.

Member Data Documentation

◆ active_set_

ActiveSet qpmad::Solver::active_set_
private

Definition at line 502 of file solver.h.

◆ chosen_ctr_

ChosenConstraint qpmad::Solver::chosen_ctr_
private

Definition at line 514 of file solver.h.

◆ constraints_status_

std::vector<ConstraintStatus::Status> qpmad::Solver::constraints_status_
private

Definition at line 512 of file solver.h.

◆ dual_

QPVector qpmad::Solver::dual_
private

Definition at line 505 of file solver.h.

◆ dual_step_direction_

QPVector qpmad::Solver::dual_step_direction_
private

Definition at line 508 of file solver.h.

◆ factorization_data_

FactorizationData qpmad::Solver::factorization_data_
private

Definition at line 503 of file solver.h.

◆ general_ctr_dot_primal_

QPVector qpmad::Solver::general_ctr_dot_primal_
private

Definition at line 510 of file solver.h.

◆ h_size_

MatrixIndex qpmad::InputParser::h_size_
protectedinherited

Definition at line 19 of file input_parser.h.

◆ machinery_initialized_

bool qpmad::Solver::machinery_initialized_
private

Definition at line 500 of file solver.h.

◆ num_constraints_

MatrixIndex qpmad::Solver::num_constraints_
private

Definition at line 499 of file solver.h.

◆ num_general_constraints_

MatrixIndex qpmad::InputParser::num_general_constraints_
protectedinherited

Definition at line 21 of file input_parser.h.

◆ num_simple_bounds_

MatrixIndex qpmad::InputParser::num_simple_bounds_
protectedinherited

Definition at line 20 of file input_parser.h.

◆ primal_size_

MatrixIndex qpmad::InputParser::primal_size_
protectedinherited

Definition at line 18 of file input_parser.h.

◆ primal_step_direction_

QPVector qpmad::Solver::primal_step_direction_
private

Definition at line 507 of file solver.h.


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