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 31 of file solver.h.
|
| 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<int t_rows_primal, int t_rows_H, int t_cols_H, int t_rows_h, int t_rows_A, int t_cols_A, int t_rows_Alb, int t_rows_Aub> |
ReturnStatus | solve (Vector< t_rows_primal > &primal, Matrix< t_rows_H, t_cols_H > &H, const Vector< t_rows_h > &h, const Matrix< t_rows_A, t_cols_A > &A, const Vector< t_rows_Alb > &Alb, const Vector< t_rows_Aub > &Aub) |
|
template<int t_rows_primal, int t_rows_H, int t_cols_H, int t_rows_h, int t_rows_lb, int t_rows_ub, int t_rows_A, int t_cols_A, int t_rows_Alb, int t_rows_Aub> |
ReturnStatus | solve (Vector< t_rows_primal > &primal, Matrix< t_rows_H, t_cols_H > &H, const Vector< t_rows_h > &h, const Vector< t_rows_lb > &lb, const Vector< t_rows_ub > &ub, const Matrix< t_rows_A, t_cols_A > &A, const Vector< t_rows_Alb > &Alb, const Vector< t_rows_Aub > &Aub) |
|
template<int t_rows_primal, int t_rows_H, int t_cols_H, int t_rows_h, int t_rows_lb, int t_rows_ub> |
ReturnStatus | solve (Vector< t_rows_primal > &primal, Matrix< t_rows_H, t_cols_H > &H, const Vector< t_rows_h > &h, const Vector< t_rows_lb > &lb, const Vector< t_rows_ub > &ub, const SolverParameters ¶m) |
|
template<int t_rows_primal, int t_rows_H, int t_cols_H, int t_rows_h, int t_rows_lb, int t_rows_ub> |
ReturnStatus | solve (Vector< t_rows_primal > &primal, Matrix< t_rows_H, t_cols_H > &H, const Vector< t_rows_h > &h, const Vector< t_rows_lb > &lb, const Vector< t_rows_ub > &ub) |
|
template<int t_rows_primal, int t_rows_H, int t_cols_H, int t_rows_h, int t_rows_lb, int t_rows_ub, int t_rows_A, int t_cols_A, int t_rows_Alb, int t_rows_Aub> |
ReturnStatus | solve (Vector< t_rows_primal > &primal, Matrix< t_rows_H, t_cols_H > &H, const Vector< t_rows_h > &h, const Vector< t_rows_lb > &lb, const Vector< t_rows_ub > &ub, const Matrix< t_rows_A, t_cols_A > &A, const Vector< t_rows_Alb > &Alb, const Vector< t_rows_Aub > &Aub, const SolverParameters ¶m) |
|
|
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<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 |
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] | 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 122 of file solver.h.
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<int t_rows_primal, int t_rows_H, int t_cols_H, int t_rows_h, int t_rows_A, int t_cols_A, int t_rows_Alb, int t_rows_Aub>
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::solve |
( |
Vector< t_rows_primal > & |
primal, |
|
|
Matrix< t_rows_H, t_cols_H > & |
H, |
|
|
const Vector< t_rows_h > & |
h, |
|
|
const Matrix< t_rows_A, t_cols_A > & |
A, |
|
|
const Vector< t_rows_Alb > & |
Alb, |
|
|
const Vector< t_rows_Aub > & |
Aub |
|
) |
| |
|
inline |
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<int t_rows_primal, int t_rows_H, int t_cols_H, int t_rows_h, int t_rows_lb, int t_rows_ub, int t_rows_A, int t_cols_A, int t_rows_Alb, int t_rows_Aub>
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::solve |
( |
Vector< t_rows_primal > & |
primal, |
|
|
Matrix< t_rows_H, t_cols_H > & |
H, |
|
|
const Vector< t_rows_h > & |
h, |
|
|
const Vector< t_rows_lb > & |
lb, |
|
|
const Vector< t_rows_ub > & |
ub, |
|
|
const Matrix< t_rows_A, t_cols_A > & |
A, |
|
|
const Vector< t_rows_Alb > & |
Alb, |
|
|
const Vector< t_rows_Aub > & |
Aub |
|
) |
| |
|
inline |
template<typename t_Scalar , int t_primal_size, int t_has_bounds, int t_general_ctr_number>
template<int t_rows_primal, int t_rows_H, int t_cols_H, int t_rows_h, int t_rows_lb, int t_rows_ub, int t_rows_A, int t_cols_A, int t_rows_Alb, int t_rows_Aub>
ReturnStatus qpmad::SolverTemplate< t_Scalar, t_primal_size, t_has_bounds, t_general_ctr_number >::solve |
( |
Vector< t_rows_primal > & |
primal, |
|
|
Matrix< t_rows_H, t_cols_H > & |
H, |
|
|
const Vector< t_rows_h > & |
h, |
|
|
const Vector< t_rows_lb > & |
lb, |
|
|
const Vector< t_rows_ub > & |
ub, |
|
|
const Matrix< t_rows_A, t_cols_A > & |
A, |
|
|
const Vector< t_rows_Alb > & |
Alb, |
|
|
const Vector< t_rows_Aub > & |
Aub, |
|
|
const SolverParameters & |
param |
|
) |
| |
|
inline |