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 #include "ladel.h"
65 
66 #define mat_inf_norm_cols ladel_infinity_norm_columns
67 #define mat_inf_norm_rows ladel_infinity_norm_rows
68 
81 void qpalm_form_kkt(QPALMWorkspace *work);
82 
89 
97  solver_common *c);
98 
106  solver_common *c);
107 
125 void kkt_solve( QPALMWorkspace *work,
126  solver_common *c);
127 
128 
138 void ldlchol(solver_sparse *M,
139  QPALMWorkspace *work,
140  solver_common *c);
141 
142 
152  solver_common *c);
153 
163  solver_common *c);
164 
174  solver_common *c);
175 
185  solver_common *c);
186 
187 
195  solver_common *c);
196 
197 
198 # ifdef __cplusplus
199 }
200 # endif // ifdef __cplusplus
201 
202 #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:295
ladel_work solver_common
Definition: types.h:18
Internal data structures used in QPALM.
void qpalm_reform_kkt(QPALMWorkspace *work)
Reform the KKT system (i.e.
Definition: solver_interface.c:170
void kkt_solve(QPALMWorkspace *work, solver_common *c)
Solve the KKT system .
Definition: solver_interface.c:231
void ldlcholQAtsigmaA(QPALMWorkspace *work, solver_common *c)
Calculate factorization of , with and the set of active constraints.
Definition: solver_interface.c:272
void ldlchol(solver_sparse *M, QPALMWorkspace *work, solver_common *c)
Calculate factorization of a matrix .
Definition: solver_interface.c:244
ladel_double solver_dense
Definition: types.h:20
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:195
QPALM Workspace.
Definition: types.h:187
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:313
ladel_sparse_matrix solver_sparse
Definition: types.h:19
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:18
void kkt_update_leaving_constraints(QPALMWorkspace *work, solver_common *c)
Perform a factorization update for the leaving constraints.
Definition: solver_interface.c:213
void mat_tpose_vec(solver_sparse *A, solver_dense *x, solver_dense *y, solver_common *c)
Matrix-transpose-vector multiplication.
Definition: solver_interface.c:92
void qpalm_form_kkt(QPALMWorkspace *work)
Form the KKT system .
Definition: solver_interface.c:112
void ldldowndate_leaving_constraints(QPALMWorkspace *work, solver_common *c)
Downdate the factorization given a set of leaving constraints.
Definition: solver_interface.c:304
void ldlsolveLD_neg_dphi(QPALMWorkspace *work, solver_common *c)
Solve the linear system .
Definition: solver_interface.c:357
void mat_vec(solver_sparse *A, solver_dense *x, solver_dense *y, solver_common *c)
Matrix-vector multiplication.
Definition: solver_interface.c:73