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