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

QPALM Workspace. More...

#include <types.h>

Data Fields

QPALMDatadata
 problem data to work on (possibly scaled) More...
 
QPALMSolversolver
 linsys variables More...
 
QPALMSettingssettings
 problem settings More...
 
QPALMScalingscaling
 scaling vectors More...
 
QPALMSolutionsolution
 problem solution More...
 
QPALMInfoinfo
 solver information More...
 
QPALMTimertimer
 timer object More...
 
Iterates
c_floatx
 primal iterate More...
 
c_floaty
 dual iterate More...
 
c_floatAx
 scaled A * x More...
 
c_floatQx
 scaled Q * x More...
 
c_floatAty
 A' * y (useful for saving one mat_tpose_vec) More...
 
c_floatx_prev
 previous primal iterate More...
 
c_int initialized
 flag whether the iterates were initialized or not More...
 
Workspace variables
c_floattemp_m
 placeholder for vector of size m More...
 
c_floattemp_n
 placeholder for vector of size n More...
 
c_floatsigma
 penalty vector More...
 
c_floatsigma_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_floatAxys
 Ax + y./sigma. More...
 
c_floatz
 projection of Axys onto the constraint set [bmin, bmax] More...
 
c_floatpri_res
 primal residual More...
 
c_floatpri_res_in
 intermediate primal residual More...
 
c_floatyh
 candidate dual update More...
 
c_floatAtyh
 A' * yh. More...
 
c_floatdf
 gradient of the primal objective (+proximal term) More...
 
c_floatx0
 record of the primal iterate during the last dual update More...
 
c_floatxx0
 x - x0 More...
 
c_floatdphi
 gradient of the Lagrangian More...
 
c_floatneg_dphi
 -dphi, required as the rhs in SCHUR More...
 
c_floatdphi_prev
 previous gradient of the Lagrangian More...
 
c_floatd
 primal update step More...
 
Linesearch variables
c_float tau
 stepsize More...
 
c_floatQd
 Q * d. More...
 
c_floatAd
 A * d. More...
 
c_floatsqrt_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_floatdelta
 linesearch parameter More...
 
c_floatalpha
 linesearch parameter More...
 
c_floattemp_2m
 placeholder for vector of size 2m More...
 
c_floatdelta2
 delta .* delta More...
 
c_floatdelta_alpha
 delta .* alpha More...
 
array_elements
 alpha ./ delta More...
 
c_intindex_L
 index set L (where s>0) More...
 
c_intindex_P
 index set P (where delta>0) More...
 
c_intindex_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_floatdelta_y
 difference of consecutive dual iterates More...
 
c_floatAtdelta_y
 A' * delta_y. More...
 
Dual infeasibility variables
c_floatdelta_x
 difference of consecutive primal iterates More...
 
c_floatQdelta_x
 Q * delta_x. More...
 
c_floatAdelta_x
 A * delta_x. More...
 
Temporary vectors used in scaling
c_floatD_temp
 temporary primal variable scaling vectors More...
 
c_floatE_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: