QPALM
main
Proximal Augmented Lagrangian method for Quadratic Programs
|
Interface and wrapper to matrix/factorization (ladel) functions.
This file includes all calls to 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.
Definition in file solver_interface.h.
#include <qpalm/global_opts.h>
#include <qpalm/constants.h>
#include <qpalm/types.h>
#include <ladel.h>
Go to the source code of this file.
Macros | |
#define | mat_inf_norm_cols ladel_infinity_norm_columns |
#define | mat_inf_norm_rows ladel_infinity_norm_rows |
Functions | |
void | mat_vec (solver_sparse *A, solver_dense *x, solver_dense *y, solver_common *c) |
Matrix-vector multiplication. | |
void | mat_tpose_vec (solver_sparse *A, solver_dense *x, solver_dense *y, solver_common *c) |
Matrix-transpose-vector multiplication. | |
void | qpalm_set_factorization_method (QPALMWorkspace *work, solver_common *c) |
Choose the linear systems solver method based on the problem data sizes. | |
void | qpalm_form_kkt (QPALMWorkspace *work) |
Form the KKT system | |
void | qpalm_reform_kkt (QPALMWorkspace *work) |
Reform the KKT system (i.e. | |
void | kkt_update_entering_constraints (QPALMWorkspace *work, solver_common *c) |
Perform a factorization update for the entering constraints. | |
void | kkt_update_leaving_constraints (QPALMWorkspace *work, solver_common *c) |
Perform a factorization update for the leaving constraints. | |
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 | |
#define mat_inf_norm_cols ladel_infinity_norm_columns |
Definition at line 66 of file solver_interface.h.
#define mat_inf_norm_rows ladel_infinity_norm_rows |
Definition at line 67 of file solver_interface.h.
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 |
Definition at line 73 of file solver_interface.c.
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 |
Definition at line 93 of file solver_interface.c.
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 |
Definition at line 18 of file solver_interface.c.
void qpalm_form_kkt | ( | QPALMWorkspace * | work | ) |
Form the KKT system
The result is in work->solver->kkt.
work | Workspace |
Definition at line 114 of file solver_interface.c.
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 |
Definition at line 172 of file solver_interface.c.
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 |
Definition at line 197 of file solver_interface.c.
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 |
Definition at line 215 of file solver_interface.c.
void kkt_solve | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Solve the KKT system
work | Workspace |
c | Linear systems solver environment |
Definition at line 233 of file solver_interface.c.
void ldlchol | ( | solver_sparse * | M, |
QPALMWorkspace * | work, | ||
solver_common * | c | ||
) |
Calculate
If work->settings->proximal = true, use
M | Matrix to be factorized |
work | Workspace |
c | Solver environment |
Definition at line 246 of file solver_interface.c.
void ldlcholQAtsigmaA | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Calculate
If work->settings->proximal = true, use
work | Workspace |
c | Solver environment |
Definition at line 274 of file solver_interface.c.
void ldlupdate_entering_constraints | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Update the
The index set of entering constraints is assumed to be set in work->solver->enter.
work | Workspace |
c | Solver environment |
Definition at line 297 of file solver_interface.c.
void ldldowndate_leaving_constraints | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Downdate the
The index set of leaving constraints is assumed to be set in work->solver->leave.
work | Workspace |
c | Solver environment |
Definition at line 306 of file solver_interface.c.
void ldlupdate_sigma_changed | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Update the
The index set of changed
work | Workspace |
c | Solver environment |
Definition at line 315 of file solver_interface.c.
void ldlsolveLD_neg_dphi | ( | QPALMWorkspace * | work, |
solver_common * | c | ||
) |
Solve the linear system
work | Workspace |
c | Solver environment |
Definition at line 359 of file solver_interface.c.