qpmad
Eigen-based C++ QP solver.
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Static Private Member Functions | List of all members
qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number > Class Template Reference

Detailed Description

template<typename t_Scalar, int t_primal_size, int t_has_bounds, int t_general_ctr_number>
class qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >

Definition at line 38 of file solver.h.

#include <solver.h>

Inheritance diagram for qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >:
qpmad::InputParser

Classes

struct  InputPlaceholders
 

Public Types

enum  ReturnStatus { OK = 0 , MAXIMAL_NUMBER_OF_ITERATIONS = 4 }
 
template<int t_rows>
using Vector = Eigen::Matrix< t_Scalar, t_rows, 1 >
 
template<int t_rows, int t_cols>
using Matrix = Eigen::Matrix< t_Scalar, t_rows, t_cols >
 
using Scalar = t_Scalar
 

Public Member Functions

 SolverTemplate ()
 
SolverParameters::HessianType getHessianType () const
 Returns type of the Hessian produced by the latest execution of solve(). More...
 
std::ptrdiff_t getNumberOfInequalityIterations () const
 Returns number of inequality iterations during the latest execution of solve(). More...
 
template<int t_status_size, int t_dual_size, int t_index_size>
void getInequalityDual (Vector< t_dual_size > &dual, Eigen::Matrix< MatrixIndex, t_index_size, 1 > &indices, Eigen::Matrix< bool, t_status_size, 1 > &is_lower) const
 Returns dual variables (Lagrange multipliers) corresponding to inequality constraints. Must be called after successful solve(), the result is undefined if previous call to solve() failed. More...
 
template<class t_primal , class t_H , class t_h , class t_A , class t_Alb , class t_Aub >
ReturnStatus solve (t_primal &primal, t_H &H, const t_h &h, const t_A &A, const t_Alb &Alb, const t_Aub &Aub, QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal), QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h), QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_A), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Alb), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Aub))
 
template<class t_primal , class t_H , class t_h , class t_A , class t_Alb >
ReturnStatus solve (t_primal &primal, t_H &H, const t_h &h, const t_A &A, const t_Alb &Alb, QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal), QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h), QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_A), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Alb))
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class t_Alb , class t_Aub >
ReturnStatus solve (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, const t_ub &ub, const t_A &A, const t_Alb &Alb, const t_Aub &Aub, QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal), QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_lb), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_ub), QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_A), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Alb), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Aub))
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class t_Alb >
ReturnStatus solve (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, const t_ub &ub, const t_A &A, const t_Alb &Alb, QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal), QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_lb), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_ub), QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_A), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Alb))
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub >
ReturnStatus solve (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, const t_ub &ub, const SolverParameters &param, QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal), QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_lb), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_ub))
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub >
ReturnStatus solve (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, const t_ub &ub, QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal), QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_lb), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_ub))
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class t_Alb , class t_Aub >
ReturnStatus solve (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, const t_ub &ub, const t_A &A, const t_Alb &Alb, const t_Aub &Aub, const SolverParameters &param, QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal), QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_lb), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_ub), QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_A), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Alb), QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Aub))
 
void reserve (const MatrixIndex primal_size, const MatrixIndex num_simple_bounds, const MatrixIndex num_general_constraints)
 

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

const struct qpmad::SolverTemplate::InputPlaceholders input_placeholders_
 
MatrixIndex num_constraints_
 
bool machinery_initialized_
 
ActiveSet< t_primal_size > active_set_
 
FactorizationData< t_Scalar, t_primal_size > factorization_data_
 
Vector< t_primal_size > dual_
 
Vector< t_primal_size > primal_step_direction_
 
Vector< t_primal_size > dual_step_direction_
 
Vector< t_general_ctr_number > general_ctr_dot_primal_
 
Eigen::Array< uint8_t, num_constraints_compile_time_, 1 > constraints_status_
 
ChosenConstraint chosen_ctr_
 
std::ptrdiff_t iter_counter_
 
SolverParameters::HessianType hessian_type_
 
MatrixIndex primal_size_
 
MatrixIndex h_size_
 
MatrixIndex num_simple_bounds_
 
MatrixIndex num_general_constraints_
 

Static Protected Attributes

static const MatrixIndex num_constraints_compile_time_
 

Private Member Functions

void reserveMachinery (const MatrixIndex primal_size, const MatrixIndex num_general_constraints)
 
void reserveDual (const MatrixIndex primal_size)
 
template<class t_MatrixType >
void initializeMachineryLazy (t_MatrixType &H, const bool return_inverted_cholesky_factor)
 
template<class t_Primal , class t_LowerBounds , class t_UpperBounds , class t_Constraints , class t_ConstraintsLowerBounds , class t_ConstraintsUpperBounds >
void chooseConstraint (const t_Primal &primal, const t_LowerBounds &lb, const t_UpperBounds &ub, const t_Constraints &A, const t_ConstraintsLowerBounds &Alb, const t_ConstraintsUpperBounds &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
 

Static Private Member Functions

template<int t_rows, int t_cols>
static void factorizeCholeskyInPlace (Eigen::Matrix< t_Scalar, t_rows, t_cols > &H)
 
template<int t_Options, typename t_StorageIndex >
static void factorizeCholeskyInPlace (Eigen::SparseMatrix< t_Scalar, t_Options, t_StorageIndex > &H)
 

Member Typedef Documentation

◆ Matrix

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<int t_rows, int t_cols>
using qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::Matrix = Eigen::Matrix<t_Scalar, t_rows, t_cols>

Definition at line 50 of file solver.h.

◆ Scalar

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
using qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::Scalar = t_Scalar
Deprecated:

Definition at line 51 of file solver.h.

◆ Vector

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<int t_rows>
using qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::Vector = Eigen::Matrix<t_Scalar, t_rows, 1>

Definition at line 48 of file solver.h.

Member Enumeration Documentation

◆ ReturnStatus

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
enum qpmad::SolverTemplate::ReturnStatus
Enumerator
OK 
MAXIMAL_NUMBER_OF_ITERATIONS 

Definition at line 41 of file solver.h.

Constructor & Destructor Documentation

◆ SolverTemplate()

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::SolverTemplate ( )
inline

Definition at line 93 of file solver.h.

Member Function Documentation

◆ checkConstraintViolation()

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
void qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::checkConstraintViolation ( const MatrixIndex  i,
const double  lb_i,
const double  ub_i,
const double  ctr_i_dot_primal 
)
inlineprivate

Definition at line 856 of file solver.h.

◆ chooseConstraint()

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<class t_Primal , class t_LowerBounds , class t_UpperBounds , class t_Constraints , class t_ConstraintsLowerBounds , class t_ConstraintsUpperBounds >
void qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::chooseConstraint ( const t_Primal &  primal,
const t_LowerBounds &  lb,
const t_UpperBounds &  ub,
const t_Constraints &  A,
const t_ConstraintsLowerBounds &  Alb,
const t_ConstraintsUpperBounds &  Aub,
const double  tolerance 
)
inlineprivate

Definition at line 811 of file solver.h.

◆ factorizeCholeskyInPlace() [1/2]

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<int t_rows, int t_cols>
static void qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::factorizeCholeskyInPlace ( Eigen::Matrix< t_Scalar, t_rows, t_cols > &  H)
inlinestaticprivate

Definition at line 896 of file solver.h.

◆ factorizeCholeskyInPlace() [2/2]

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<int t_Options, typename t_StorageIndex >
static void qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::factorizeCholeskyInPlace ( Eigen::SparseMatrix< t_Scalar, t_Options, t_StorageIndex > &  H)
inlinestaticprivate

Definition at line 905 of file solver.h.

◆ getConstraintDotPrimalStepDirection()

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<class t_VectorType , class t_MatrixType >
double qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::getConstraintDotPrimalStepDirection ( const t_VectorType &  primal_step_direction,
const t_MatrixType &  A 
) const
inlineprivate

Definition at line 881 of file solver.h.

◆ getHessianType()

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
SolverParameters::HessianType qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::getHessianType ( ) const
inline

Returns type of the Hessian produced by the latest execution of solve().

Definition at line 105 of file solver.h.

◆ getInequalityDual()

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<int t_status_size, int t_dual_size, int t_index_size>
void qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::getInequalityDual ( Vector< t_dual_size > &  dual,
Eigen::Matrix< MatrixIndex, t_index_size, 1 > &  indices,
Eigen::Matrix< bool, t_status_size, 1 > &  is_lower 
) const
inline

Returns dual variables (Lagrange multipliers) corresponding to inequality constraints. Must be called after successful solve(), the result is undefined if previous call to solve() failed.

Template Parameters
t_status_size
t_dual_size
t_index_size
Parameters
[out]dualdual variables
[out]indicesconstraint indices corresponding to the dual variables, index 0 corresponds to the first simple bound if present or to the first general constraint otherwise
[out]is_lowerflags indicating if lower or upper bound is active

Definition at line 139 of file solver.h.

◆ getNumberOfInequalityIterations()

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
std::ptrdiff_t qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::getNumberOfInequalityIterations ( ) const
inline

Returns number of inequality iterations during the latest execution of solve().

Definition at line 115 of file solver.h.

◆ initializeMachineryLazy()

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<class t_MatrixType >
void qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::initializeMachineryLazy ( t_MatrixType &  H,
const bool  return_inverted_cholesky_factor 
)
inlineprivate

Definition at line 787 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 68 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 35 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 48 of file input_parser.h.

◆ reserve()

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
void qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::reserve ( const MatrixIndex  primal_size,
const MatrixIndex  num_simple_bounds,
const MatrixIndex  num_general_constraints 
)
inline

Definition at line 757 of file solver.h.

◆ reserveDual()

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
void qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::reserveDual ( const MatrixIndex  primal_size)
inlineprivate

Definition at line 779 of file solver.h.

◆ reserveMachinery()

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
void qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::reserveMachinery ( const MatrixIndex  primal_size,
const MatrixIndex  num_general_constraints 
)
inlineprivate

Definition at line 769 of file solver.h.

◆ solve() [1/7]

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<class t_primal , class t_H , class t_h , class t_A , class t_Alb , class t_Aub >
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::solve ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_A &  A,
const t_Alb &  Alb,
const t_Aub &  Aub,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal)  ,
QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h)  ,
QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_A)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Alb)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Aub)   
)
inline

Definition at line 172 of file solver.h.

◆ solve() [2/7]

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<class t_primal , class t_H , class t_h , class t_A , class t_Alb >
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::solve ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_A &  A,
const t_Alb &  Alb,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal)  ,
QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h)  ,
QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_A)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Alb)   
)
inline

Definition at line 201 of file solver.h.

◆ solve() [3/7]

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub >
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::solve ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
const t_ub &  ub,
const SolverParameters param,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal)  ,
QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_lb)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_ub)   
)
inline

Definition at line 274 of file solver.h.

◆ solve() [4/7]

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class t_Alb , class t_Aub >
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::solve ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
const t_ub &  ub,
const t_A &  A,
const t_Alb &  Alb,
const t_Aub &  Aub,
const SolverParameters param,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal)  ,
QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_lb)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_ub)  ,
QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_A)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Alb)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Aub)   
)
inline

Definition at line 330 of file solver.h.

◆ solve() [5/7]

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class t_Alb , class t_Aub >
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::solve ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
const t_ub &  ub,
const t_A &  A,
const t_Alb &  Alb,
const t_Aub &  Aub,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal)  ,
QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_lb)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_ub)  ,
QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_A)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Alb)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Aub)   
)
inline

Definition at line 228 of file solver.h.

◆ solve() [6/7]

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class t_Alb >
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::solve ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
const t_ub &  ub,
const t_A &  A,
const t_Alb &  Alb,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal)  ,
QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_lb)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_ub)  ,
QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_A)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_Alb)   
)
inline

Definition at line 252 of file solver.h.

◆ solve() [7/7]

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub >
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::solve ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
const t_ub &  ub,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_primal)  ,
QPMAD_UTILS_EIGEN_MATRIX_ENABLER(t_H)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_h)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_lb)  ,
QPMAD_UTILS_EIGEN_VECTOR_ENABLER(t_ub)   
)
inline

Definition at line 302 of file solver.h.

Member Data Documentation

◆ active_set_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
ActiveSet<t_primal_size> qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::active_set_
protected

Definition at line 73 of file solver.h.

◆ chosen_ctr_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
ChosenConstraint qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::chosen_ctr_
protected

Definition at line 85 of file solver.h.

◆ constraints_status_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
Eigen::Array<uint8_t, num_constraints_compile_time_, 1> qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::constraints_status_
protected

Definition at line 83 of file solver.h.

◆ dual_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
Vector<t_primal_size> qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::dual_
protected

Definition at line 76 of file solver.h.

◆ dual_step_direction_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
Vector<t_primal_size> qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::dual_step_direction_
protected

Definition at line 79 of file solver.h.

◆ factorization_data_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
FactorizationData<t_Scalar, t_primal_size> qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::factorization_data_
protected

Definition at line 74 of file solver.h.

◆ general_ctr_dot_primal_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
Vector<t_general_ctr_number> qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::general_ctr_dot_primal_
protected

Definition at line 81 of file solver.h.

◆ h_size_

MatrixIndex qpmad::InputParser::h_size_
protectedinherited

Definition at line 19 of file input_parser.h.

◆ hessian_type_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
SolverParameters::HessianType qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::hessian_type_
protected

Definition at line 89 of file solver.h.

◆ input_placeholders_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
const struct qpmad::SolverTemplate::InputPlaceholders qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::input_placeholders_
protected

◆ iter_counter_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
std::ptrdiff_t qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::iter_counter_
protected

Definition at line 87 of file solver.h.

◆ machinery_initialized_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
bool qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::machinery_initialized_
protected

Definition at line 71 of file solver.h.

◆ num_constraints_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
MatrixIndex qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::num_constraints_
protected

Definition at line 70 of file solver.h.

◆ num_constraints_compile_time_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
const MatrixIndex qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::num_constraints_compile_time_
staticprotected
Initial value:
=
Eigen::Dynamic == t_general_ctr_number ?
Eigen::Dynamic :
(0 == t_has_bounds ? t_general_ctr_number :
(Eigen::Dynamic == t_primal_size ? Eigen::Dynamic :
t_general_ctr_number + t_primal_size))

Definition at line 64 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_

template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
Vector<t_primal_size> qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::primal_step_direction_
protected

Definition at line 78 of file solver.h.


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