QPALM
A proximal augmented Lagrangian method for QPs.
solver_interface.h
Go to the documentation of this file.
1 
12 #ifndef SOLVER_INTERFACE_H
13 #define SOLVER_INTERFACE_H
14 
15 # ifdef __cplusplus
16 extern "C" {
17 # endif // ifdef __cplusplus
18 
19 #include "global_opts.h"
20 #include "constants.h"
21 #include "types.h"
22 
33 void mat_vec(solver_sparse *A,
34  solver_dense *x,
35  solver_dense *y,
36  solver_common *c);
48  solver_dense *x,
49  solver_dense *y,
50  solver_common *c);
51 
62  solver_common *c);
63 
64 #ifdef USE_LADEL
65 #include "ladel.h"
66 
67 #define mat_inf_norm_cols ladel_infinity_norm_columns
68 #define mat_inf_norm_rows ladel_infinity_norm_rows
69 
82 void qpalm_form_kkt(QPALMWorkspace *work);
83 
90 
98  solver_common *c);
99 
107  solver_common *c);
108 
126 void kkt_solve( QPALMWorkspace *work,
127  solver_common *c);
128 
129 #elif defined USE_CHOLMOD
130 #include "cholmod.h"
131 
140  c_float *E);
141 
150  c_float *E);
151 
159 void cholmod_set_settings(solver_common *c);
160 
161 #endif /* USE_CHOLMOD */
162 
172 void ldlchol(solver_sparse *M,
173  QPALMWorkspace *work,
174  solver_common *c);
175 
176 
186  solver_common *c);
187 
197  solver_common *c);
198 
208  solver_common *c);
209 
219  solver_common *c);
220 
221 
229  solver_common *c);
230 
231 
232 # ifdef __cplusplus
233 }
234 # endif // ifdef __cplusplus
235 
236 #endif // ifndef CHOLMOD_INTERFACE_H
void ldlupdate_entering_constraints(QPALMWorkspace *work, solver_common *c)
Update the factorization given a set of entering constraints.
Definition: solver_interface.c:407
ladel_work solver_common
Definition: types.h:19
Internal data structures used in QPALM.
void qpalm_reform_kkt(QPALMWorkspace *work)
Reform the KKT system (i.e.
Definition: solver_interface.c:177
void kkt_solve(QPALMWorkspace *work, solver_common *c)
Solve the KKT system .
Definition: solver_interface.c:238
void ldlcholQAtsigmaA(QPALMWorkspace *work, solver_common *c)
Calculate factorization of , with and the set of active constraints.
Definition: solver_interface.c:372
void ldlchol(solver_sparse *M, QPALMWorkspace *work, solver_common *c)
Calculate factorization of a matrix .
Definition: solver_interface.c:319
ladel_double solver_dense
Definition: types.h:21
Constants used in QPALM.
void kkt_update_entering_constraints(QPALMWorkspace *work, solver_common *c)
Perform a factorization update for the entering constraints.
Definition: solver_interface.c:202
#define mat_inf_norm_cols
Definition: solver_interface.h:67
QPALM Workspace.
Definition: types.h:197
Custom memory allocation, print and utility functions, and data types for floats and ints.
void ldlupdate_sigma_changed(QPALMWorkspace *work, solver_common *c)
Update the factorization given a set of indexes where has been updated.
Definition: solver_interface.c:443
#define mat_inf_norm_rows
Definition: solver_interface.h:68
ladel_sparse_matrix solver_sparse
Definition: types.h:20
void qpalm_set_factorization_method(QPALMWorkspace *work, solver_common *c)
Choose the linear systems solver method based on the problem data sizes.
Definition: solver_interface.c:20
void kkt_update_leaving_constraints(QPALMWorkspace *work, solver_common *c)
Perform a factorization update for the leaving constraints.
Definition: solver_interface.c:220
void mat_tpose_vec(solver_sparse *A, solver_dense *x, solver_dense *y, solver_common *c)
Matrix-transpose-vector multiplication.
Definition: solver_interface.c:99
void qpalm_form_kkt(QPALMWorkspace *work)
Form the KKT system .
Definition: solver_interface.c:119
void ldldowndate_leaving_constraints(QPALMWorkspace *work, solver_common *c)
Downdate the factorization given a set of leaving constraints.
Definition: solver_interface.c:425
void ldlsolveLD_neg_dphi(QPALMWorkspace *work, solver_common *c)
Solve the linear system .
Definition: solver_interface.c:505
void mat_vec(solver_sparse *A, solver_dense *x, solver_dense *y, solver_common *c)
Matrix-vector multiplication.
Definition: solver_interface.c:80
ladel_double c_float
type for floating point numbers
Definition: global_opts.h:21