| 
    QPALM  
   1.2.1
   Proximal Augmented Lagrangian method for Quadratic Programs 
   | 
 
#include <qpalm/types.h>
QPALM Workspace.
The workspace is the main data structure and is given as a pointer to (almost) all QPALM functions. It contains pointers to the settings, the data, return info, solution variables and intermediate workspace variables.
 Collaboration diagram for QPALMWorkspace:Data Fields | |
| QPALMData * | data | 
| problem data to work on (possibly scaled)   | |
| QPALMSolver * | solver | 
| linsys variables   | |
| QPALMSettings * | settings | 
| problem settings   | |
| QPALMScaling * | scaling | 
| scaling vectors   | |
| QPALMSolution * | solution | 
| problem solution   | |
| QPALMInfo * | info | 
| solver information   | |
| QPALMTimer * | timer | 
| timer object   | |
Iterates  | |
| c_float * | x | 
| primal iterate   | |
| c_float * | y | 
| dual iterate   | |
| c_float * | Ax | 
| scaled A * x   | |
| c_float * | Qx | 
| scaled Q * x   | |
| c_float * | Aty | 
| A' * y (useful for saving one mat_tpose_vec)   | |
| c_float * | x_prev | 
| previous primal iterate   | |
| c_int | initialized | 
| flag whether the iterates were initialized or not   | |
Workspace variables  | |
| c_float * | temp_m | 
| placeholder for vector of size m   | |
| c_float * | temp_n | 
| placeholder for vector of size n   | |
| c_float * | sigma | 
| penalty vector   | |
| c_float * | sigma_inv | 
| 1./sigma   | |
| c_float | sqrt_sigma_max | 
| sqrt(sigma_max)   | |
| c_int | nb_sigma_changed | 
| number of sigma-components that changed in an outer iteration (relevant for factorization update)   | |
| c_float | gamma | 
| proximal penalty factor   | |
| c_int | gamma_maxed | 
| flag to indicate whether gamma has been maximized when the primal residual was low   | |
| c_float * | Axys | 
| Ax + y./sigma.   | |
| c_float * | z | 
| projection of Axys onto the constraint set [bmin, bmax]   | |
| c_float * | pri_res | 
| primal residual   | |
| c_float * | pri_res_in | 
| intermediate primal residual   | |
| c_float * | yh | 
| candidate dual update   | |
| c_float * | Atyh | 
| A' * yh.   | |
| c_float * | df | 
| gradient of the primal objective (+proximal term)   | |
| c_float * | x0 | 
| record of the primal iterate during the last dual update   | |
| c_float * | xx0 | 
| x - x0   | |
| c_float * | dphi | 
| gradient of the Lagrangian   | |
| c_float * | neg_dphi | 
| -dphi, required as the rhs in SCHUR   | |
| c_float * | dphi_prev | 
| previous gradient of the Lagrangian   | |
| c_float * | d | 
| primal update step   | |
Linesearch variables  | |
| c_float | tau | 
| stepsize   | |
| c_float * | Qd | 
| Q * d.   | |
| c_float * | Ad | 
| A * d.   | |
| c_float * | sqrt_sigma | 
| elementwise sqrt(sigma)   | |
| c_float | sqrt_delta | 
| sqrt(penalty update factor)   | |
| c_float | eta | 
| linesearch parameter   | |
| c_float | beta | 
| linesearch parameter   | |
| c_float * | delta | 
| linesearch parameter   | |
| c_float * | alpha | 
| linesearch parameter   | |
| c_float * | temp_2m | 
| placeholder for vector of size 2m   | |
| c_float * | delta2 | 
| delta .* delta   | |
| c_float * | delta_alpha | 
| delta .* alpha   | |
| array_element * | s | 
| alpha ./ delta   | |
| c_int * | index_L | 
| index set L (where s>0)   | |
| c_int * | index_P | 
| index set P (where delta>0)   | |
| c_int * | index_J | 
| index set J (L xor P)   | |
Termination criteria variables  | |
| c_float | eps_pri | 
| primal tolerance   | |
| c_float | eps_dua | 
| dual tolerance   | |
| c_float | eps_dua_in | 
| intermediate dual tolerance   | |
| c_float | eps_abs_in | 
| intermediate absolute tolerance   | |
| c_float | eps_rel_in | 
| intermediate relative tolerance   | |
Primal infeasibility variables  | |
| c_float * | delta_y | 
| difference of consecutive dual iterates   | |
| c_float * | Atdelta_y | 
| A' * delta_y.   | |
Dual infeasibility variables  | |
| c_float * | delta_x | 
| difference of consecutive primal iterates   | |
| c_float * | Qdelta_x | 
| Q * delta_x.   | |
| c_float * | Adelta_x | 
| A * delta_x.   | |
Temporary vectors used in scaling  | |
| c_float * | D_temp | 
| temporary primal variable scaling vectors   | |
| c_float * | E_temp | 
| temporary constraints scaling vectors   | |
| QPALMData* QPALMWorkspace::data | 
| c_float* QPALMWorkspace::Aty | 
| c_int QPALMWorkspace::initialized | 
| c_float* QPALMWorkspace::temp_m | 
| c_float* QPALMWorkspace::temp_n | 
| c_int QPALMWorkspace::nb_sigma_changed | 
| c_int QPALMWorkspace::gamma_maxed | 
| c_float* QPALMWorkspace::z | 
| c_float* QPALMWorkspace::pri_res_in | 
| c_float* QPALMWorkspace::df | 
| c_float* QPALMWorkspace::x0 | 
| c_float* QPALMWorkspace::neg_dphi | 
| c_float* QPALMWorkspace::dphi_prev | 
| c_float QPALMWorkspace::sqrt_delta | 
| c_float* QPALMWorkspace::temp_2m | 
| array_element* QPALMWorkspace::s | 
| c_float QPALMWorkspace::eps_dua_in | 
| c_float QPALMWorkspace::eps_abs_in | 
| c_float QPALMWorkspace::eps_rel_in | 
| c_float* QPALMWorkspace::delta_y | 
| c_float* QPALMWorkspace::delta_x | 
| c_float* QPALMWorkspace::D_temp | 
| c_float* QPALMWorkspace::E_temp | 
| QPALMSolver* QPALMWorkspace::solver | 
| QPALMSettings* QPALMWorkspace::settings | 
| QPALMScaling* QPALMWorkspace::scaling | 
| QPALMSolution* QPALMWorkspace::solution | 
| QPALMInfo* QPALMWorkspace::info | 
| QPALMTimer* QPALMWorkspace::timer |