QPALM
A proximal augmented Lagrangian method for QPs.
qpalm.h
Go to the documentation of this file.
1 
11 #ifndef QPALM_H
12 #define QPALM_H
13 
14 #include "constants.h"
15 #include "global_opts.h"
16 #include "iteration.h"
17 #include "lin_alg.h"
18 #include "linesearch.h"
19 #include "newton.h"
20 #include "nonconvex.h"
21 #include "scaling.h"
22 #include "solver_interface.h"
23 #include "termination.h"
24 #include "types.h"
25 #include "util.h"
26 #include "validate.h"
27 
28 
29 /********************
30 * Main Solver API *
31 ********************/
32 
44 
45 
60  const QPALMSettings *settings);
61 
62 
75  c_float *x_warm_start,
76  c_float *y_warm_start);
77 
93 void qpalm_solve(QPALMWorkspace *work);
94 
95 
105  const QPALMSettings *settings);
106 
117  const c_float *bmin,
118  const c_float *bmax);
119 
128 void qpalm_update_q(QPALMWorkspace *work,
129  const c_float *q);
130 
131 
138 void qpalm_cleanup(QPALMWorkspace *work);
139 
144 #endif /* QPALM_H */
Functions to calculate the semismooth Newton direction.
Problem data scaling during setup.
Internal data structures used in QPALM.
Data structure.
Definition: types.h:104
void qpalm_solve(QPALMWorkspace *work)
Solve the quadratic program.
Definition: qpalm.c:401
Constants used in QPALM.
QPALMWorkspace * qpalm_setup(const QPALMData *data, const QPALMSettings *settings)
Initialize QPALM solver allocating memory.
Definition: qpalm.c:73
Settings struct.
Definition: types.h:119
Linear algebra with vectors.
Validation of the user provided settings and data.
void qpalm_update_q(QPALMWorkspace *work, const c_float *q)
Update the linear part of the cost.
Definition: qpalm.c:827
QPALM Workspace.
Definition: types.h:197
void qpalm_warm_start(QPALMWorkspace *work, c_float *x_warm_start, c_float *y_warm_start)
Warm start workspace variables x, x_0, x_prev, Ax, Qx, y and sigma.
Definition: qpalm.c:322
void qpalm_update_settings(QPALMWorkspace *work, const QPALMSettings *settings)
Update the settings to the new settings.
Definition: qpalm.c:739
Custom memory allocation, print and utility functions, and data types for floats and ints.
Utility functions.
void qpalm_cleanup(QPALMWorkspace *work)
Cleanup the workspace by deallocating memory.
Definition: qpalm.c:874
Routines to deal with nonconvex QPs.
QPALM main solver routines.
Routines to perform exact linesearch.
Routines to check the termination and infeasibility criteria.
void qpalm_set_default_settings(QPALMSettings *settings)
Set default settings from constants.h file.
Definition: qpalm.c:38
Interface and wrapper to matrix/factorization (ladel/cholmod) functions.
void qpalm_update_bounds(QPALMWorkspace *work, const c_float *bmin, const c_float *bmax)
Update the lower and upper bounds.
Definition: qpalm.c:793
ladel_double c_float
type for floating point numbers
Definition: global_opts.h:21