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

Detailed Description

template<typename t_Scalar, int... t_Parameters>
class qpmad::SolverTemplate< t_Scalar, t_Parameters >

Definition at line 20 of file solver.h.

#include <solver.h>

Inheritance diagram for qpmad::SolverTemplate< t_Scalar, t_Parameters >:
qpmad::SolverBase< t_Scalar, t_Parameters... >

Classes

struct  InputPlaceholders
 

Public Types

enum  ReturnStatus
 
using Vector = Eigen::Matrix< t_Scalar, t_rows, 1 >
 
using Matrix = Eigen::Matrix< t_Scalar, t_rows, t_cols >
 
using Scalar = t_Scalar
 

Public Member Functions

 SolverTemplate ()
 
template<class... t_Args>
ReturnStatus solve (t_Args &&...args)
 Solve QP. More...
 
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...
 
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...
 
void reserve (const MatrixIndex primal_size, const MatrixIndex num_simple_bounds, const MatrixIndex num_general_constraints)
 

Protected Types

template<typename t_Type >
using VectorEnablerReturnType = const typename std::enable_if< t_Type::IsVectorAtCompileTime, ReturnStatus >::type
 
template<typename t_Type >
using MatrixEnablerReturnType = const typename std::enable_if< t_Type::ColsAtCompileTime !=1, ReturnStatus >::type
 
using MatrixConstRef = const Eigen::Ref< const Eigen::Matrix< t_Scalar, Eigen::Dynamic, Eigen::Dynamic > >
 
using VectorConstRef = const Eigen::Ref< const Eigen::Matrix< t_Scalar, Eigen::Dynamic, 1 > >
 
using MatrixRef = Eigen::Ref< Eigen::Matrix< t_Scalar, Eigen::Dynamic, Eigen::Dynamic > >
 
using VectorRef = Eigen::Ref< Eigen::Matrix< t_Scalar, Eigen::Dynamic, 1 > >
 

Protected Member Functions

template<class t_primal , class... t_Args>
VectorEnablerReturnType< t_primal > solve0 (t_primal &primal, t_Args &&...args)
 
template<class... t_Args>
ReturnStatus solve0 (VectorRef primal, t_Args &&...args)
 
template<class t_primal , class t_H , class... t_Args>
MatrixEnablerReturnType< t_H > solve1 (t_primal &primal, t_H &H, t_Args &&...args)
 
template<class t_primal , class... t_Args>
ReturnStatus solve1 (t_primal &primal, MatrixRef H, t_Args &&...args)
 
template<class t_primal , class t_H , class t_h , class... t_Args>
VectorEnablerReturnType< t_h > solve2 (t_primal &primal, t_H &H, const t_h &h, t_Args &&...args)
 
template<class t_primal , class t_H , class... t_Args>
ReturnStatus solve2 (t_primal &primal, t_H &H, VectorConstRef h, t_Args &&...args)
 
template<class t_primal , class t_H , class t_h , class t_lb , class... t_Args>
VectorEnablerReturnType< t_lb > solve3 (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, t_Args &&...args)
 
template<class t_primal , class t_H , class t_h , class t_lb , class... t_Args>
ReturnStatus solve3 (t_primal &primal, t_H &H, const t_h &h, VectorConstRef lb, t_Args &&...args)
 
template<class t_primal , class t_H , class t_h , class t_A , class... t_Args>
MatrixEnablerReturnType< t_A > solve3 (t_primal &primal, t_H &H, const t_h &h, const t_A &A, t_Args &&...args)
 
template<class t_primal , class t_H , class t_h , class... t_Args>
ReturnStatus solve3 (t_primal &primal, t_H &H, const t_h &h, MatrixConstRef A, t_Args &&...args)
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub >
VectorEnablerReturnType< t_ub > solve4 (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, const t_ub &ub)
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class... t_Args>
VectorEnablerReturnType< t_ub > solve4 (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, const t_ub &ub, t_Args &&...args)
 
template<class t_primal , class t_H , class t_h , class t_lb >
ReturnStatus solve4 (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, VectorConstRef ub)
 
template<class t_primal , class t_H , class t_h , class t_lb , class... t_Args>
ReturnStatus solve4 (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, VectorConstRef ub, t_Args &&...args)
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub >
ReturnStatus solve5 (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, const t_ub &ub, const SolverParameters &param)
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class... t_Args>
MatrixEnablerReturnType< t_A > solve5 (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, const t_ub &ub, const t_A &A, t_Args &&...args)
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class... t_Args>
ReturnStatus solve5 (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, const t_ub &ub, MatrixConstRef A, t_Args &&...args)
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class t_Alb >
VectorEnablerReturnType< t_Alb > solve6 (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)
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class t_Alb , class... t_Args>
VectorEnablerReturnType< t_Alb > solve6 (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, t_Args &&...args)
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A >
ReturnStatus solve6 (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, const t_ub &ub, const t_A &A, VectorConstRef Alb)
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class... t_Args>
ReturnStatus solve6 (t_primal &primal, t_H &H, const t_h &h, const t_lb &lb, const t_ub &ub, const t_A &A, VectorConstRef Alb, t_Args &&...args)
 
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 >
VectorEnablerReturnType< t_Aub > solve7 (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)
 
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 , class... t_Args>
VectorEnablerReturnType< t_Aub > solve7 (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, t_Args &&...args)
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class t_Alb >
ReturnStatus solve7 (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, VectorConstRef Aub)
 
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class t_Alb , class... t_Args>
ReturnStatus solve7 (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, VectorConstRef Aub, t_Args &&...args)
 
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 solve8 (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)
 
ReturnStatus solveGeneric (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)
 

Protected Attributes

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

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)
 
void initializeMachineryLazy (t_MatrixType &H, const bool return_inverted_cholesky_factor)
 
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)
 
double getConstraintDotPrimalStepDirection (const t_VectorType &primal_step_direction, const t_MatrixType &A) const
 
void setZero (t_primal &primal)
 
void setZero (VectorRef primal)
 

Static Private Member Functions

static void factorizeCholeskyInPlace (Eigen::Matrix< t_Scalar, t_Other... > &H)
 
static void factorizeCholeskyInPlace (MatrixRef &H)
 
static void factorizeCholeskyInPlace (Eigen::SparseMatrix< t_Scalar, t_Options, t_StorageIndex > &H)
 

Member Typedef Documentation

◆ Matrix

using qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::Matrix = Eigen::Matrix<t_Scalar, t_rows, t_cols>
inherited

Definition at line 45 of file implementation.h.

◆ MatrixConstRef

template<typename t_Scalar , int... t_Parameters>
using qpmad::SolverTemplate< t_Scalar, t_Parameters >::MatrixConstRef = const Eigen::Ref<const Eigen::Matrix<t_Scalar, Eigen::Dynamic, Eigen::Dynamic> >
protected

Definition at line 36 of file solver.h.

◆ MatrixEnablerReturnType

template<typename t_Scalar , int... t_Parameters>
template<typename t_Type >
using qpmad::SolverTemplate< t_Scalar, t_Parameters >::MatrixEnablerReturnType = const typename std::enable_if<t_Type::ColsAtCompileTime != 1, ReturnStatus>::type
protected

Definition at line 31 of file solver.h.

◆ MatrixRef

using qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::MatrixRef = Eigen::Ref<Eigen::Matrix<t_Scalar, Eigen::Dynamic, Eigen::Dynamic> >
protectedinherited

Definition at line 50 of file implementation.h.

◆ Scalar

using qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::Scalar = t_Scalar
inherited
Deprecated:

Definition at line 46 of file implementation.h.

◆ Vector

using qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::Vector = Eigen::Matrix<t_Scalar, t_rows, 1>
inherited

Definition at line 43 of file implementation.h.

◆ VectorConstRef

template<typename t_Scalar , int... t_Parameters>
using qpmad::SolverTemplate< t_Scalar, t_Parameters >::VectorConstRef = const Eigen::Ref<const Eigen::Matrix<t_Scalar, Eigen::Dynamic, 1> >
protected

Definition at line 37 of file solver.h.

◆ VectorEnablerReturnType

template<typename t_Scalar , int... t_Parameters>
template<typename t_Type >
using qpmad::SolverTemplate< t_Scalar, t_Parameters >::VectorEnablerReturnType = const typename std::enable_if<t_Type::IsVectorAtCompileTime, ReturnStatus>::type
protected

Definition at line 28 of file solver.h.

◆ VectorRef

using qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::VectorRef = Eigen::Ref<Eigen::Matrix<t_Scalar, Eigen::Dynamic, 1> >
protectedinherited

Definition at line 51 of file implementation.h.

Member Enumeration Documentation

◆ ReturnStatus

Definition at line 35 of file implementation.h.

Constructor & Destructor Documentation

◆ SolverTemplate()

template<typename t_Scalar , int... t_Parameters>
qpmad::SolverTemplate< t_Scalar, t_Parameters >::SolverTemplate ( )
inline

Definition at line 402 of file solver.h.

Member Function Documentation

◆ checkConstraintViolation()

void qpmad::SolverBase< 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 
)
inlineprivateinherited

Definition at line 689 of file implementation.h.

◆ chooseConstraint()

void qpmad::SolverBase< 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 
)
inlineprivateinherited

Definition at line 644 of file implementation.h.

◆ factorizeCholeskyInPlace() [1/3]

static void qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::factorizeCholeskyInPlace ( Eigen::Matrix< t_Scalar, t_Other... > &  H)
inlinestaticprivateinherited

Definition at line 729 of file implementation.h.

◆ factorizeCholeskyInPlace() [2/3]

static void qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::factorizeCholeskyInPlace ( Eigen::SparseMatrix< t_Scalar, t_Options, t_StorageIndex > &  H)
inlinestaticprivateinherited

Definition at line 744 of file implementation.h.

◆ factorizeCholeskyInPlace() [3/3]

static void qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::factorizeCholeskyInPlace ( MatrixRef H)
inlinestaticprivateinherited

Definition at line 736 of file implementation.h.

◆ getConstraintDotPrimalStepDirection()

double qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::getConstraintDotPrimalStepDirection ( const t_VectorType &  primal_step_direction,
const t_MatrixType &  A 
) const
inlineprivateinherited

Definition at line 714 of file implementation.h.

◆ getHessianType()

SolverParameters::HessianType qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::getHessianType ( ) const
inlineinherited

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

Definition at line 107 of file implementation.h.

◆ getInequalityDual()

void qpmad::SolverBase< 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
inlineinherited

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 141 of file implementation.h.

◆ getNumberOfInequalityIterations()

std::ptrdiff_t qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::getNumberOfInequalityIterations ( ) const
inlineinherited

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

Definition at line 117 of file implementation.h.

◆ initializeMachineryLazy()

void qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::initializeMachineryLazy ( t_MatrixType &  H,
const bool  return_inverted_cholesky_factor 
)
inlineprivateinherited

Definition at line 620 of file implementation.h.

◆ reserve()

void qpmad::SolverBase< 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 
)
inlineinherited

Definition at line 173 of file implementation.h.

◆ reserveDual()

void qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::reserveDual ( const MatrixIndex  primal_size)
inlineprivateinherited

Definition at line 612 of file implementation.h.

◆ reserveMachinery()

void qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::reserveMachinery ( const MatrixIndex  primal_size,
const MatrixIndex  num_general_constraints 
)
inlineprivateinherited

Definition at line 602 of file implementation.h.

◆ setZero() [1/2]

void qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::setZero ( t_primal &  primal)
inlineprivateinherited

Definition at line 754 of file implementation.h.

◆ setZero() [2/2]

void qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::setZero ( VectorRef  primal)
inlineprivateinherited

Definition at line 759 of file implementation.h.

◆ solve()

template<typename t_Scalar , int... t_Parameters>
template<class... t_Args>
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve ( t_Args &&...  args)
inline

Solve QP.

Inputs:

  • [out] Vector primal – solution vector, mandatory, allocated if needed
  • [in,out] Matrix H – Hessian, mandatory, non-empty, factorized in-place
  • [in] Vector h – objective vector, mandatory, may be empty
  • [in] Vector lb – vector of lower bounds, may be omitted or may be empty consistently with ub
  • [in] Vector ub – vector of upper bounds, may be omitted or may be empty consistently with lb
  • [in] Matrix A – general constraints matrix, may be omitted with all general constraints, may be empty
  • [in] Vector Alb – lower bounds of general constraints, may be omitted with all general constraints, may be empty
  • [in] Vector Aub – upper bounds of general constraints, may be omitted (if A and Alb are present they are assumed to be equality constraints), may be empty
  • [in] SolverParameters param – solver parameters, may be omitted

Definition at line 423 of file solver.h.

◆ solve0() [1/2]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class... t_Args>
VectorEnablerReturnType< t_primal > qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve0 ( t_primal &  primal,
t_Args &&...  args 
)
inlineprotected

Definition at line 50 of file solver.h.

◆ solve0() [2/2]

template<typename t_Scalar , int... t_Parameters>
template<class... t_Args>
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve0 ( VectorRef  primal,
t_Args &&...  args 
)
inlineprotected

Definition at line 56 of file solver.h.

◆ solve1() [1/2]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class... t_Args>
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve1 ( t_primal &  primal,
MatrixRef  H,
t_Args &&...  args 
)
inlineprotected

Definition at line 70 of file solver.h.

◆ solve1() [2/2]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class... t_Args>
MatrixEnablerReturnType< t_H > qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve1 ( t_primal &  primal,
t_H &  H,
t_Args &&...  args 
)
inlineprotected

Definition at line 64 of file solver.h.

◆ solve2() [1/2]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class... t_Args>
VectorEnablerReturnType< t_h > qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve2 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
t_Args &&...  args 
)
inlineprotected

Definition at line 78 of file solver.h.

◆ solve2() [2/2]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class... t_Args>
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve2 ( t_primal &  primal,
t_H &  H,
VectorConstRef  h,
t_Args &&...  args 
)
inlineprotected

Definition at line 84 of file solver.h.

◆ solve3() [1/4]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_A , class... t_Args>
MatrixEnablerReturnType< t_A > qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve3 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_A &  A,
t_Args &&...  args 
)
inlineprotected

Definition at line 104 of file solver.h.

◆ solve3() [2/4]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb , class... t_Args>
VectorEnablerReturnType< t_lb > qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve3 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
t_Args &&...  args 
)
inlineprotected

Definition at line 92 of file solver.h.

◆ solve3() [3/4]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class... t_Args>
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve3 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
MatrixConstRef  A,
t_Args &&...  args 
)
inlineprotected

Definition at line 117 of file solver.h.

◆ solve3() [4/4]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb , class... t_Args>
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve3 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
VectorConstRef  lb,
t_Args &&...  args 
)
inlineprotected

Definition at line 98 of file solver.h.

◆ solve4() [1/4]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub >
VectorEnablerReturnType< t_ub > qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve4 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
const t_ub &  ub 
)
inlineprotected

Definition at line 132 of file solver.h.

◆ solve4() [2/4]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class... t_Args>
VectorEnablerReturnType< t_ub > qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve4 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
const t_ub &  ub,
t_Args &&...  args 
)
inlineprotected

Definition at line 139 of file solver.h.

◆ solve4() [3/4]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb >
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve4 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
VectorConstRef  ub 
)
inlineprotected

Definition at line 151 of file solver.h.

◆ solve4() [4/4]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb , class... t_Args>
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve4 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
VectorConstRef  ub,
t_Args &&...  args 
)
inlineprotected

Definition at line 158 of file solver.h.

◆ solve5() [1/3]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub >
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve5 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
const t_ub &  ub,
const SolverParameters param 
)
inlineprotected

Definition at line 166 of file solver.h.

◆ solve5() [2/3]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class... t_Args>
MatrixEnablerReturnType< t_A > qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve5 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
const t_ub &  ub,
const t_A &  A,
t_Args &&...  args 
)
inlineprotected

Definition at line 187 of file solver.h.

◆ solve5() [3/3]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class... t_Args>
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve5 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
const t_ub &  ub,
MatrixConstRef  A,
t_Args &&...  args 
)
inlineprotected

Definition at line 200 of file solver.h.

◆ solve6() [1/4]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class t_Alb >
VectorEnablerReturnType< t_Alb > qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve6 ( 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 
)
inlineprotected

Definition at line 215 of file solver.h.

◆ solve6() [2/4]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class t_Alb , class... t_Args>
VectorEnablerReturnType< t_Alb > qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve6 ( 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,
t_Args &&...  args 
)
inlineprotected

Definition at line 228 of file solver.h.

◆ solve6() [3/4]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A >
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve6 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
const t_ub &  ub,
const t_A &  A,
VectorConstRef  Alb 
)
inlineprotected

Definition at line 242 of file solver.h.

◆ solve6() [4/4]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class... t_Args>
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve6 ( t_primal &  primal,
t_H &  H,
const t_h &  h,
const t_lb &  lb,
const t_ub &  ub,
const t_A &  A,
VectorConstRef  Alb,
t_Args &&...  args 
)
inlineprotected

Definition at line 255 of file solver.h.

◆ solve7() [1/4]

template<typename t_Scalar , int... t_Parameters>
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 >
VectorEnablerReturnType< t_Aub > qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve7 ( 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 
)
inlineprotected

Definition at line 271 of file solver.h.

◆ solve7() [2/4]

template<typename t_Scalar , int... t_Parameters>
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 , class... t_Args>
VectorEnablerReturnType< t_Aub > qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve7 ( 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,
t_Args &&...  args 
)
inlineprotected

Definition at line 294 of file solver.h.

◆ solve7() [3/4]

template<typename t_Scalar , int... t_Parameters>
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_Parameters >::solve7 ( 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,
VectorConstRef  Aub 
)
inlineprotected

Definition at line 309 of file solver.h.

◆ solve7() [4/4]

template<typename t_Scalar , int... t_Parameters>
template<class t_primal , class t_H , class t_h , class t_lb , class t_ub , class t_A , class t_Alb , class... t_Args>
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_Parameters >::solve7 ( 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,
VectorConstRef  Aub,
t_Args &&...  args 
)
inlineprotected

Definition at line 323 of file solver.h.

◆ solve8()

template<typename t_Scalar , int... t_Parameters>
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_Parameters >::solve8 ( 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 
)
inlineprotected

Definition at line 340 of file solver.h.

◆ solveGeneric()

ReturnStatus qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::solveGeneric ( 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 
)
inlineprotectedinherited

Definition at line 186 of file implementation.h.

Member Data Documentation

◆ active_set_

ActiveSet<t_primal_size> qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::active_set_
protectedinherited

Definition at line 60 of file implementation.h.

◆ chosen_ctr_

ChosenConstraint qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::chosen_ctr_
protectedinherited

Definition at line 80 of file implementation.h.

◆ constraints_status_

Eigen::Array<uint8_t, num_constraints_compile_time_, 1> qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::constraints_status_
protectedinherited

Definition at line 85 of file implementation.h.

◆ dual_

Vector<t_primal_size> qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::dual_
protectedinherited

Definition at line 55 of file implementation.h.

◆ dual_step_direction_

Vector<t_primal_size> qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::dual_step_direction_
protectedinherited

Definition at line 58 of file implementation.h.

◆ factorization_data_

FactorizationData<t_Scalar, t_primal_size> qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::factorization_data_
protectedinherited

Definition at line 61 of file implementation.h.

◆ general_ctr_dot_primal_

Vector<t_general_ctr_number> qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::general_ctr_dot_primal_
protectedinherited

Definition at line 77 of file implementation.h.

◆ h_size_

MatrixIndex qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::h_size_
protectedinherited

Definition at line 64 of file implementation.h.

◆ hessian_type_

SolverParameters::HessianType qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::hessian_type_
protectedinherited

Definition at line 82 of file implementation.h.

◆ input_placeholders_

template<typename t_Scalar , int... t_Parameters>
const struct qpmad::SolverTemplate::InputPlaceholders qpmad::SolverTemplate< t_Scalar, t_Parameters >::input_placeholders_
protected

◆ iter_counter_

std::ptrdiff_t qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::iter_counter_
protectedinherited

Definition at line 79 of file implementation.h.

◆ machinery_initialized_

bool qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::machinery_initialized_
protectedinherited

Definition at line 83 of file implementation.h.

◆ num_constraints_

MatrixIndex qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::num_constraints_
protectedinherited

Definition at line 67 of file implementation.h.

◆ num_constraints_compile_time_

const MatrixIndex qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::num_constraints_compile_time_
staticprotectedinherited

Definition at line 69 of file implementation.h.

◆ num_general_constraints_

MatrixIndex qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::num_general_constraints_
protectedinherited

Definition at line 66 of file implementation.h.

◆ num_simple_bounds_

MatrixIndex qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::num_simple_bounds_
protectedinherited

Definition at line 65 of file implementation.h.

◆ primal_size_

MatrixIndex qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::primal_size_
protectedinherited

Definition at line 63 of file implementation.h.

◆ primal_step_direction_

Vector<t_primal_size> qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::primal_step_direction_
protectedinherited

Definition at line 57 of file implementation.h.


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