template<typename t_Scalar, int t_primal_size, int t_has_bounds, int t_general_ctr_number>
class qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >
Definition at line 32 of file implementation.h.
#include <implementation.h>
|
| SolverBase () |
|
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...
|
|
void | reserve (const MatrixIndex primal_size, const MatrixIndex num_simple_bounds, const MatrixIndex num_general_constraints) |
|
|
using | MatrixRef = Eigen::Ref< Eigen::Matrix< t_Scalar, Eigen::Dynamic, Eigen::Dynamic > > |
|
using | VectorRef = Eigen::Ref< Eigen::Matrix< t_Scalar, Eigen::Dynamic, 1 > > |
|
|
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 | 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 ¶m) |
|
|
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 |
|
template<class t_primal > |
void | setZero (t_primal &primal) |
|
void | setZero (VectorRef primal) |
|
◆ 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::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::Matrix = Eigen::Matrix<t_Scalar, t_rows, t_cols> |
◆ MatrixRef
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
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> > |
|
protected |
◆ Scalar
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ Vector
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<int t_rows>
using qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::Vector = Eigen::Matrix<t_Scalar, t_rows, 1> |
◆ VectorRef
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
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> > |
|
protected |
◆ ReturnStatus
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
Enumerator |
---|
OK | |
MAXIMAL_NUMBER_OF_ITERATIONS | |
UNDEFINED | |
Definition at line 35 of file implementation.h.
◆ SolverBase()
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ checkConstraintViolation()
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
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 |
|
) |
| |
|
inlineprivate |
◆ 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::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 |
|
) |
| |
|
inlineprivate |
◆ factorizeCholeskyInPlace() [1/3]
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<int... t_Other>
static void qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::factorizeCholeskyInPlace |
( |
Eigen::Matrix< t_Scalar, t_Other... > & |
H | ) |
|
|
inlinestaticprivate |
◆ factorizeCholeskyInPlace() [2/3]
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::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::factorizeCholeskyInPlace |
( |
Eigen::SparseMatrix< t_Scalar, t_Options, t_StorageIndex > & |
H | ) |
|
|
inlinestaticprivate |
◆ factorizeCholeskyInPlace() [3/3]
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
static void qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::factorizeCholeskyInPlace |
( |
MatrixRef & |
H | ) |
|
|
inlinestaticprivate |
◆ 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::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 |
|
inlineprivate |
◆ getHessianType()
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
Returns type of the Hessian produced by the latest execution of solve()
.
Definition at line 107 of file implementation.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::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 |
|
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] | dual | dual variables |
[out] | indices | constraint 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_lower | flags indicating if lower or upper bound is active |
Definition at line 141 of file implementation.h.
◆ getNumberOfInequalityIterations()
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
std::ptrdiff_t qpmad::SolverBase< 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 117 of file implementation.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::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::initializeMachineryLazy |
( |
t_MatrixType & |
H, |
|
|
const bool |
return_inverted_cholesky_factor |
|
) |
| |
|
inlineprivate |
◆ reserve()
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ reserveDual()
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ reserveMachinery()
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ setZero() [1/2]
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<class t_primal >
void qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::setZero |
( |
t_primal & |
primal | ) |
|
|
inlineprivate |
◆ setZero() [2/2]
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ solveGeneric()
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::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 |
|
) |
| |
|
inlineprotected |
◆ active_set_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ chosen_ctr_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ constraints_status_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ dual_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ 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::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::dual_step_direction_ |
|
protected |
◆ factorization_data_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ 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::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::general_ctr_dot_primal_ |
|
protected |
◆ h_size_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ hessian_type_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ iter_counter_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
std::ptrdiff_t qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::iter_counter_ |
|
protected |
◆ machinery_initialized_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
bool qpmad::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::machinery_initialized_ |
|
protected |
◆ num_constraints_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ num_constraints_compile_time_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
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 69 of file implementation.h.
◆ num_general_constraints_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ num_simple_bounds_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ primal_size_
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
◆ 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::SolverBase< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::primal_step_direction_ |
|
protected |
The documentation for this class was generated from the following file: