QPALM
A proximal augmented Lagrangian method for QPs.
Data Fields
QPALMWorkspace Struct Reference

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...
 

Detailed Description

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.

Field Documentation

◆ Ad

c_float* QPALMWorkspace::Ad

A * d.

◆ Adelta_x

c_float* QPALMWorkspace::Adelta_x

A * delta_x.

◆ alpha

c_float* QPALMWorkspace::alpha

linesearch parameter

◆ Atdelta_y

c_float* QPALMWorkspace::Atdelta_y

A' * delta_y.

◆ Aty

c_float* QPALMWorkspace::Aty

A' * y (useful for saving one mat_tpose_vec)

◆ Atyh

c_float* QPALMWorkspace::Atyh

A' * yh.

◆ Ax

c_float* QPALMWorkspace::Ax

scaled A * x

◆ Axys

c_float* QPALMWorkspace::Axys

Ax + y./sigma.

◆ beta

c_float QPALMWorkspace::beta

linesearch parameter

◆ d

c_float* QPALMWorkspace::d

primal update step

◆ D_temp

c_float* QPALMWorkspace::D_temp

temporary primal variable scaling vectors

◆ data

QPALMData* QPALMWorkspace::data

problem data to work on (possibly scaled)

◆ delta

c_float* QPALMWorkspace::delta

linesearch parameter

◆ delta2

c_float* QPALMWorkspace::delta2

delta .* delta

◆ delta_alpha

c_float* QPALMWorkspace::delta_alpha

delta .* alpha

◆ delta_x

c_float* QPALMWorkspace::delta_x

difference of consecutive primal iterates

◆ delta_y

c_float* QPALMWorkspace::delta_y

difference of consecutive dual iterates

◆ df

c_float* QPALMWorkspace::df

gradient of the primal objective (+proximal term)

◆ dphi

c_float* QPALMWorkspace::dphi

gradient of the Lagrangian

◆ dphi_prev

c_float* QPALMWorkspace::dphi_prev

previous gradient of the Lagrangian

◆ E_temp

c_float* QPALMWorkspace::E_temp

temporary constraints scaling vectors

◆ eps_abs_in

c_float QPALMWorkspace::eps_abs_in

intermediate absolute tolerance

◆ eps_dua

c_float QPALMWorkspace::eps_dua

dual tolerance

◆ eps_dua_in

c_float QPALMWorkspace::eps_dua_in

intermediate dual tolerance

◆ eps_pri

c_float QPALMWorkspace::eps_pri

primal tolerance

◆ eps_rel_in

c_float QPALMWorkspace::eps_rel_in

intermediate relative tolerance

◆ eta

c_float QPALMWorkspace::eta

linesearch parameter

◆ gamma

c_float QPALMWorkspace::gamma

proximal penalty factor

◆ gamma_maxed

c_int QPALMWorkspace::gamma_maxed

flag to indicate whether gamma has been maximized when the primal residual was low

◆ index_J

c_int* QPALMWorkspace::index_J

index set J (L xor P)

◆ index_L

c_int* QPALMWorkspace::index_L

index set L (where s>0)

◆ index_P

c_int* QPALMWorkspace::index_P

index set P (where delta>0)

◆ info

QPALMInfo* QPALMWorkspace::info

solver information

◆ initialized

c_int QPALMWorkspace::initialized

flag whether the iterates were initialized or not

◆ nb_sigma_changed

c_int QPALMWorkspace::nb_sigma_changed

number of sigma-components that changed in an outer iteration (relevant for factorization update)

◆ neg_dphi

c_float* QPALMWorkspace::neg_dphi

-dphi, required as the rhs in SCHUR

◆ pri_res

c_float* QPALMWorkspace::pri_res

primal residual

◆ pri_res_in

c_float* QPALMWorkspace::pri_res_in

intermediate primal residual

◆ Qd

c_float* QPALMWorkspace::Qd

Q * d.

◆ Qdelta_x

c_float* QPALMWorkspace::Qdelta_x

Q * delta_x.

◆ Qx

c_float* QPALMWorkspace::Qx

scaled Q * x

◆ s

array_element* QPALMWorkspace::s

alpha ./ delta

◆ scaling

QPALMScaling* QPALMWorkspace::scaling

scaling vectors

◆ settings

QPALMSettings* QPALMWorkspace::settings

problem settings

◆ sigma

c_float* QPALMWorkspace::sigma

penalty vector

◆ sigma_inv

c_float* QPALMWorkspace::sigma_inv

1./sigma

◆ solution

QPALMSolution* QPALMWorkspace::solution

problem solution

◆ solver

QPALMSolver* QPALMWorkspace::solver

linsys variables

◆ sqrt_delta

c_float QPALMWorkspace::sqrt_delta

sqrt(penalty update factor)

◆ sqrt_sigma

c_float* QPALMWorkspace::sqrt_sigma

elementwise sqrt(sigma)

◆ sqrt_sigma_max

c_float QPALMWorkspace::sqrt_sigma_max

sqrt(sigma_max)

◆ tau

c_float QPALMWorkspace::tau

stepsize

◆ temp_2m

c_float* QPALMWorkspace::temp_2m

placeholder for vector of size 2m

◆ temp_m

c_float* QPALMWorkspace::temp_m

placeholder for vector of size m

◆ temp_n

c_float* QPALMWorkspace::temp_n

placeholder for vector of size n

◆ timer

QPALMTimer* QPALMWorkspace::timer

timer object

◆ x

c_float* QPALMWorkspace::x

primal iterate

◆ x0

c_float* QPALMWorkspace::x0

record of the primal iterate during the last dual update

◆ x_prev

c_float* QPALMWorkspace::x_prev

previous primal iterate

◆ xx0

c_float* QPALMWorkspace::xx0

x - x0

◆ y

c_float* QPALMWorkspace::y

dual iterate

◆ yh

c_float* QPALMWorkspace::yh

candidate dual update

◆ z

c_float* QPALMWorkspace::z

projection of Axys onto the constraint set [bmin, bmax]


The documentation for this struct was generated from the following file: