QPALM
A proximal augmented Lagrangian method for QPs.
constants.h File Reference

Constants used in QPALM. More...

#include "ladel.h"

Go to the source code of this file.

Macros

Booleans
#define TRUE   1
 
#define FALSE   0
 
Solver status
#define QPALM_SOLVED   (1)
 status to indicate the problem is solved to optimality given the specified tolerances More...
 
#define QPALM_DUAL_TERMINATED   (2)
 status to indicate the problem has a dual objective that is higher than the specified bound More...
 
#define QPALM_MAX_ITER_REACHED   (-2)
 status to indicate termination due to reaching the maximum number of iterations More...
 
#define QPALM_PRIMAL_INFEASIBLE   (-3)
 status to indicate the problem is primal infeasible More...
 
#define QPALM_DUAL_INFEASIBLE   (-4)
 status to indicate the problem is dual infeasible More...
 
#define QPALM_TIME_LIMIT_REACHED   (-5)
 status to indicate the problem's runtime has exceeded the specified time limit More...
 
#define QPALM_UNSOLVED   (-10)
 status to indicate the problem is unsolved. More...
 
#define QPALM_ERROR   (0)
 status to indicate an error has occured (this error should automatically be printed) More...
 
Solver parameters and settings
#define QPALM_NULL   0
 NULL, if something goes wrong during setup, the workspace pointer is set to this. More...
 
#define QPALM_NAN   ((c_float)0x7fc00000UL)
 not a number, used for the solution if the problem is primal or dual infeasible More...
 
#define QPALM_INFTY   ((c_float)1e20)
 infinity, used to indicate one-sided constraints More...
 
#define MAX_ITER   (10000)
 default maximum number of iterations More...
 
#define INNER_MAX_ITER   (100)
 default maximum number of iterations per subproblem More...
 
#define EPS_ABS   (1e-4)
 default absolute convergence tolerance More...
 
#define EPS_REL   (1e-4)
 default relative convergence tolerance More...
 
#define EPS_ABS_IN   (1)
 default intermediate absolute convergence tolerance More...
 
#define EPS_REL_IN   (1)
 default intermediate relative convergence tolerance More...
 
#define RHO   (0.1)
 default tolerance scaling factor More...
 
#define EPS_PRIM_INF   (1e-5)
 default primal infeasibility tolerance More...
 
#define EPS_DUAL_INF   (1e-5)
 default dual infeasibility tolerance More...
 
#define THETA   (0.25)
 default penalty update criterion parameter More...
 
#define DELTA   (100)
 default penalty update factor More...
 
#define SIGMA_MAX   (1e9)
 default penalty cap More...
 
#define SIGMA_INIT   (2e1)
 default initial penalty parameter (guideline) More...
 
#define PROXIMAL   (TRUE)
 default use of proximal method of multipliers More...
 
#define GAMMA_INIT   (1E7)
 default initial proximal penalty parameter More...
 
#define GAMMA_UPD   (10)
 default proximal penalty update factor More...
 
#define GAMMA_MAX   (1E7)
 default proximal penalty cap More...
 
#define SCALING   (10)
 default number of scaling iterations More...
 
#define MIN_SCALING   (1e-12)
 Minimum scaling value/**< minimum scaling value */. More...
 
#define MAX_SCALING   (1e+04)
 Maximum scaling value/**< maximum scaling value */. More...
 
#define NONCONVEX   (FALSE)
 default use of nonconvex adjustments More...
 
#define WARM_START   (FALSE)
 default warm start setting More...
 
#define VERBOSE   (TRUE)
 default write out progress setting More...
 
#define PRINT_ITER   (1)
 default frequency of printing More...
 
#define RESET_NEWTON_ITER   (10000)
 default frequency of performing a full Cholesky factorization More...
 
#define ENABLE_DUAL_TERMINATION   (FALSE)
 enable termination after dual objective > something (useful in branch and bound) More...
 
#define DUAL_OBJECTIVE_LIMIT   (QPALM_INFTY)
 termination value for the dual objective (useful in branch and bound) More...
 
#define TIME_LIMIT   (QPALM_INFTY)
 time limit after which the solver aborts More...
 
#define MAX_RANK_UPDATE   160
 maximum rank for the sparse factorization update More...
 
#define MAX_RANK_UPDATE_FRACTION   0.1
 maximum rank (relative to n+m) for the factorization update More...
 
#define RELATIVE_REFINEMENT_TOLERANCE   1e-10
 relative tolerance on the residual for linear systems solving More...
 
#define ABSOLUTE_REFINEMENT_TOLERANCE   1e-12
 absolute tolerance on the residual for linear systems solving More...
 
#define MAX_REFINEMENT_ITERATIONS   3
 maximum number of refinement iterations More...
 
#define FACTORIZE_KKT   0
 factorize the kkt system More...
 
#define FACTORIZE_SCHUR   1
 factorize the Schur complement More...
 
#define FACTORIZE_KKT_OR_SCHUR   2
 select automatically between kkt system and schur complement More...
 
#define FACTORIZATION_METHOD   FACTORIZE_KKT_OR_SCHUR
 default method for solving the linear system More...
 
#define ORDERING   AMD
 ordering in the factorization More...
 

Detailed Description

Constants used in QPALM.

Author
Ben Hermans

This file contains the constants that are used as default settings and to set the solver status.

Macro Definition Documentation

◆ ABSOLUTE_REFINEMENT_TOLERANCE

#define ABSOLUTE_REFINEMENT_TOLERANCE   1e-12

absolute tolerance on the residual for linear systems solving

◆ DELTA

#define DELTA   (100)

default penalty update factor

◆ DUAL_OBJECTIVE_LIMIT

#define DUAL_OBJECTIVE_LIMIT   (QPALM_INFTY)

termination value for the dual objective (useful in branch and bound)

◆ ENABLE_DUAL_TERMINATION

#define ENABLE_DUAL_TERMINATION   (FALSE)

enable termination after dual objective > something (useful in branch and bound)

◆ EPS_ABS

#define EPS_ABS   (1e-4)

default absolute convergence tolerance

◆ EPS_ABS_IN

#define EPS_ABS_IN   (1)

default intermediate absolute convergence tolerance

◆ EPS_DUAL_INF

#define EPS_DUAL_INF   (1e-5)

default dual infeasibility tolerance

◆ EPS_PRIM_INF

#define EPS_PRIM_INF   (1e-5)

default primal infeasibility tolerance

◆ EPS_REL

#define EPS_REL   (1e-4)

default relative convergence tolerance

◆ EPS_REL_IN

#define EPS_REL_IN   (1)

default intermediate relative convergence tolerance

◆ FACTORIZATION_METHOD

#define FACTORIZATION_METHOD   FACTORIZE_KKT_OR_SCHUR

default method for solving the linear system

◆ FACTORIZE_KKT

#define FACTORIZE_KKT   0

factorize the kkt system

◆ FACTORIZE_KKT_OR_SCHUR

#define FACTORIZE_KKT_OR_SCHUR   2

select automatically between kkt system and schur complement

◆ FACTORIZE_SCHUR

#define FACTORIZE_SCHUR   1

factorize the Schur complement

◆ FALSE

#define FALSE   0

◆ GAMMA_INIT

#define GAMMA_INIT   (1E7)

default initial proximal penalty parameter

◆ GAMMA_MAX

#define GAMMA_MAX   (1E7)

default proximal penalty cap

◆ GAMMA_UPD

#define GAMMA_UPD   (10)

default proximal penalty update factor

◆ INNER_MAX_ITER

#define INNER_MAX_ITER   (100)

default maximum number of iterations per subproblem

◆ MAX_ITER

#define MAX_ITER   (10000)

default maximum number of iterations

◆ MAX_RANK_UPDATE

#define MAX_RANK_UPDATE   160

maximum rank for the sparse factorization update

◆ MAX_RANK_UPDATE_FRACTION

#define MAX_RANK_UPDATE_FRACTION   0.1

maximum rank (relative to n+m) for the factorization update

◆ MAX_REFINEMENT_ITERATIONS

#define MAX_REFINEMENT_ITERATIONS   3

maximum number of refinement iterations

◆ MAX_SCALING

#define MAX_SCALING   (1e+04)

Maximum scaling value/**< maximum scaling value */.

◆ MIN_SCALING

#define MIN_SCALING   (1e-12)

Minimum scaling value/**< minimum scaling value */.

◆ NONCONVEX

#define NONCONVEX   (FALSE)

default use of nonconvex adjustments

◆ ORDERING

#define ORDERING   AMD

ordering in the factorization

◆ PRINT_ITER

#define PRINT_ITER   (1)

default frequency of printing

◆ PROXIMAL

#define PROXIMAL   (TRUE)

default use of proximal method of multipliers

◆ QPALM_DUAL_INFEASIBLE

#define QPALM_DUAL_INFEASIBLE   (-4)

status to indicate the problem is dual infeasible

◆ QPALM_DUAL_TERMINATED

#define QPALM_DUAL_TERMINATED   (2)

status to indicate the problem has a dual objective that is higher than the specified bound

◆ QPALM_ERROR

#define QPALM_ERROR   (0)

status to indicate an error has occured (this error should automatically be printed)

◆ QPALM_INFTY

#define QPALM_INFTY   ((c_float)1e20)

infinity, used to indicate one-sided constraints

◆ QPALM_MAX_ITER_REACHED

#define QPALM_MAX_ITER_REACHED   (-2)

status to indicate termination due to reaching the maximum number of iterations

◆ QPALM_NAN

#define QPALM_NAN   ((c_float)0x7fc00000UL)

not a number, used for the solution if the problem is primal or dual infeasible

◆ QPALM_NULL

#define QPALM_NULL   0

NULL, if something goes wrong during setup, the workspace pointer is set to this.

◆ QPALM_PRIMAL_INFEASIBLE

#define QPALM_PRIMAL_INFEASIBLE   (-3)

status to indicate the problem is primal infeasible

◆ QPALM_SOLVED

#define QPALM_SOLVED   (1)

status to indicate the problem is solved to optimality given the specified tolerances

◆ QPALM_TIME_LIMIT_REACHED

#define QPALM_TIME_LIMIT_REACHED   (-5)

status to indicate the problem's runtime has exceeded the specified time limit

◆ QPALM_UNSOLVED

#define QPALM_UNSOLVED   (-10)

status to indicate the problem is unsolved.

Only setup function has been called

◆ RELATIVE_REFINEMENT_TOLERANCE

#define RELATIVE_REFINEMENT_TOLERANCE   1e-10

relative tolerance on the residual for linear systems solving

◆ RESET_NEWTON_ITER

#define RESET_NEWTON_ITER   (10000)

default frequency of performing a full Cholesky factorization

◆ RHO

#define RHO   (0.1)

default tolerance scaling factor

◆ SCALING

#define SCALING   (10)

default number of scaling iterations

◆ SIGMA_INIT

#define SIGMA_INIT   (2e1)

default initial penalty parameter (guideline)

◆ SIGMA_MAX

#define SIGMA_MAX   (1e9)

default penalty cap

◆ THETA

#define THETA   (0.25)

default penalty update criterion parameter

◆ TIME_LIMIT

#define TIME_LIMIT   (QPALM_INFTY)

time limit after which the solver aborts

◆ TRUE

#define TRUE   1

◆ VERBOSE

#define VERBOSE   (TRUE)

default write out progress setting

◆ WARM_START

#define WARM_START   (FALSE)

default warm start setting