QPALM
A proximal augmented Lagrangian method for QPs.
|
Interface and wrapper to matrix/factorization (ladel/cholmod) functions. More...
Functions | |
void | qpalm_set_factorization_method (QPALMWorkspace *work, solver_common *c) |
Choose the linear systems solver method based on the problem data sizes. More... | |
void | mat_vec (solver_sparse *A, solver_dense *x, solver_dense *y, solver_common *c) |
Matrix-vector multiplication. More... | |
void | mat_tpose_vec (solver_sparse *A, solver_dense *x, solver_dense *y, solver_common *c) |
Matrix-transpose-vector multiplication. More... | |
void | qpalm_form_kkt (QPALMWorkspace *work) |
Form the KKT system ![]() | |
void | qpalm_reform_kkt (QPALMWorkspace *work) |
Reform the KKT system (i.e. More... | |
void | kkt_update_entering_constraints (QPALMWorkspace *work, solver_common *c) |
Perform a factorization update for the entering constraints. More... | |
void | kkt_update_leaving_constraints (QPALMWorkspace *work, solver_common *c) |
Perform a factorization update for the leaving constraints. More... | |
void | kkt_solve (QPALMWorkspace *work, solver_common *c) |
Solve the KKT system ![]() | |
void | ldlchol (solver_sparse *M, QPALMWorkspace *work, solver_common *c) |
Calculate ![]() ![]() | |
void | ldlcholQAtsigmaA (QPALMWorkspace *work, solver_common *c) |
Calculate ![]() ![]() ![]() ![]() | |
void | ldlupdate_entering_constraints (QPALMWorkspace *work, solver_common *c) |
Update the ![]() | |
void | ldldowndate_leaving_constraints (QPALMWorkspace *work, solver_common *c) |
Downdate the ![]() | |
void | ldlupdate_sigma_changed (QPALMWorkspace *work, solver_common *c) |
Update the ![]() ![]() | |
void | ldlsolveLD_neg_dphi (QPALMWorkspace *work, solver_common *c) |
Solve the linear system ![]() | |
Interface and wrapper to matrix/factorization (ladel/cholmod) functions.
This file includes all calls to cholmod/ladel functions apart from scaling in scaling.c and memory allocation/deallocation in the main functions in qpalm.c. It includes all matrix operations, such as matrix vector products, row- and columnwise norms, cholesky factorizations, factorization updates and solving the linear system. Finally, all the settings relevant to cholmod (and suitesparse) are included in this file as well.
void kkt_solve | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Solve the KKT system .
work | Workspace |
c | Linear systems solver environment |
void kkt_update_entering_constraints | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Perform a factorization update for the entering constraints.
work | Workspace |
c | Linear systems solver environment |
void kkt_update_leaving_constraints | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Perform a factorization update for the leaving constraints.
work | Workspace |
c | Linear systems solver environment |
void ldlchol | ( | solver_sparse * | M, |
QPALMWorkspace * | work, | ||
solver_common * | c | ||
) |
Calculate factorization of a matrix
.
If work->settings->proximal = true, use instead.
M | Matrix to be factorized |
work | Workspace |
c | Solver environment |
void ldlcholQAtsigmaA | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Calculate factorization of
, with
and
the set of active constraints.
If work->settings->proximal = true, use instead.
work | Workspace |
c | Solver environment |
void ldldowndate_leaving_constraints | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Downdate the factorization given a set of leaving constraints.
The index set of leaving constraints is assumed to be set in work->solver->leave.
work | Workspace |
c | Solver environment |
void ldlsolveLD_neg_dphi | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Solve the linear system .
work | Workspace |
c | Solver environment |
void ldlupdate_entering_constraints | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Update the factorization given a set of entering constraints.
The index set of entering constraints is assumed to be set in work->solver->enter.
work | Workspace |
c | Solver environment |
void ldlupdate_sigma_changed | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Update the factorization given a set of indexes where
has been updated.
The index set of changed is assumed to be set in work->solver->enter.
work | Workspace |
c | Solver environment |
void mat_tpose_vec | ( | solver_sparse * | A, |
solver_dense * | x, | ||
solver_dense * | y, | ||
solver_common * | c | ||
) |
Matrix-transpose-vector multiplication.
A | Sparse matrix |
x | Dense input vector |
y | Dense output vector |
c | Solver environment |
void mat_vec | ( | solver_sparse * | A, |
solver_dense * | x, | ||
solver_dense * | y, | ||
solver_common * | c | ||
) |
Matrix-vector multiplication.
A | Sparse matrix |
x | Dense input vector |
y | Dense output vector |
c | Solver environment |
void qpalm_form_kkt | ( | QPALMWorkspace * | work | ) |
Form the KKT system .
The result is in work->solver->kkt.
work | Workspace |
void qpalm_reform_kkt | ( | QPALMWorkspace * | work | ) |
Reform the KKT system (i.e.
delete constraints which are no longer active and add those that are now active).
work | Workspace |
void qpalm_set_factorization_method | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Choose the linear systems solver method based on the problem data sizes.
This chooses between forming and solving the KKT system or the SCHUR complement. The resulting method is in work->solver->factorization_method.
work | Workspace |
c | Linear systems solver environment |