QPALM main
Proximal Augmented Lagrangian method for Quadratic Programs
Loading...
Searching...
No Matches
constants.h File Reference

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.

Definition in file constants.h.

#include <ladel.h>
+ Include dependency graph for constants.h:
+ This graph shows which files directly or indirectly include this file:

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
 
#define QPALM_DUAL_TERMINATED   (2)
 status to indicate the problem has a dual objective that is higher than the specified bound
 
#define QPALM_MAX_ITER_REACHED   (-2)
 status to indicate termination due to reaching the maximum number of iterations

 
#define QPALM_PRIMAL_INFEASIBLE   (-3)
 status to indicate the problem is primal infeasible

 
#define QPALM_DUAL_INFEASIBLE   (-4)
 status to indicate the problem is dual infeasible

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

Macro Definition Documentation

◆ TRUE

#define TRUE   1
Examples
examples/c/qpalm_demo.c.

Definition at line 18 of file constants.h.

◆ FALSE

#define FALSE   0
Examples
examples/c/qpalm_demo.c.

Definition at line 19 of file constants.h.

◆ QPALM_SOLVED

#define QPALM_SOLVED   (1)

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

Definition at line 30 of file constants.h.

◆ QPALM_DUAL_TERMINATED

#define QPALM_DUAL_TERMINATED   (2)

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

Definition at line 31 of file constants.h.

◆ QPALM_MAX_ITER_REACHED

#define QPALM_MAX_ITER_REACHED   (-2)

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

Definition at line 32 of file constants.h.

◆ QPALM_PRIMAL_INFEASIBLE

#define QPALM_PRIMAL_INFEASIBLE   (-3)

status to indicate the problem is primal infeasible

Definition at line 33 of file constants.h.

◆ QPALM_DUAL_INFEASIBLE

#define QPALM_DUAL_INFEASIBLE   (-4)

status to indicate the problem is dual infeasible

Definition at line 34 of file constants.h.

◆ QPALM_TIME_LIMIT_REACHED

#define QPALM_TIME_LIMIT_REACHED   (-5)

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

Definition at line 35 of file constants.h.

◆ QPALM_USER_CANCELLATION

#define QPALM_USER_CANCELLATION   (-6)

status to indicate the user has cancelled the solve

Definition at line 36 of file constants.h.

◆ QPALM_UNSOLVED

#define QPALM_UNSOLVED   (-10)

status to indicate the problem is unsolved.

Only setup function has been called

Definition at line 37 of file constants.h.

◆ QPALM_ERROR

#define QPALM_ERROR   (0)

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

Definition at line 38 of file constants.h.

◆ QPALM_NULL

#define QPALM_NULL   0

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

Definition at line 54 of file constants.h.

◆ QPALM_NAN

#define QPALM_NAN   ((c_float)0x7fc00000UL)

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

Definition at line 58 of file constants.h.

◆ QPALM_INFTY

#define QPALM_INFTY   ((c_float)1e20)

infinity, used to indicate one-sided constraints

Definition at line 62 of file constants.h.

◆ MAX_ITER

#define MAX_ITER   (10000)

default maximum number of iterations

Definition at line 66 of file constants.h.

◆ INNER_MAX_ITER

#define INNER_MAX_ITER   (100)

default maximum number of iterations per subproblem

Definition at line 67 of file constants.h.

◆ EPS_ABS

#define EPS_ABS   (1e-4)

default absolute convergence tolerance

Definition at line 68 of file constants.h.

◆ EPS_REL

#define EPS_REL   (1e-4)

default relative convergence tolerance

Definition at line 69 of file constants.h.

◆ EPS_ABS_IN

#define EPS_ABS_IN   (1)

default intermediate absolute convergence tolerance

Definition at line 70 of file constants.h.

◆ EPS_REL_IN

#define EPS_REL_IN   (1)

default intermediate relative convergence tolerance

Definition at line 71 of file constants.h.

◆ RHO

#define RHO   (0.1)

default tolerance scaling factor

Definition at line 72 of file constants.h.

◆ EPS_PRIM_INF

#define EPS_PRIM_INF   (1e-5)

default primal infeasibility tolerance

Definition at line 73 of file constants.h.

◆ EPS_DUAL_INF

#define EPS_DUAL_INF   (1e-5)

default dual infeasibility tolerance

Definition at line 74 of file constants.h.

◆ THETA

#define THETA   (0.25)

default penalty update criterion parameter

Definition at line 75 of file constants.h.

◆ DELTA

#define DELTA   (100)

default penalty update factor

Definition at line 76 of file constants.h.

◆ SIGMA_MAX

#define SIGMA_MAX   (1e9)

default penalty cap

Definition at line 77 of file constants.h.

◆ SIGMA_INIT

#define SIGMA_INIT   (2e1)

default initial penalty parameter (guideline)

Definition at line 78 of file constants.h.

◆ PROXIMAL

#define PROXIMAL   (TRUE)

default use of proximal method of multipliers

Definition at line 79 of file constants.h.

◆ GAMMA_INIT

#define GAMMA_INIT   (1E7)

default initial proximal penalty parameter

Definition at line 80 of file constants.h.

◆ GAMMA_UPD

#define GAMMA_UPD   (10)

default proximal penalty update factor

Definition at line 81 of file constants.h.

◆ GAMMA_MAX

#define GAMMA_MAX   (1E7)

default proximal penalty cap

Definition at line 82 of file constants.h.

◆ SCALING

#define SCALING   (10)

default number of scaling iterations

Definition at line 84 of file constants.h.

◆ MIN_SCALING

#define MIN_SCALING   (1e-12)

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

Definition at line 85 of file constants.h.

◆ MAX_SCALING

#define MAX_SCALING   (1e+04)

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

Definition at line 86 of file constants.h.

◆ NONCONVEX

#define NONCONVEX   (FALSE)

default use of nonconvex adjustments

Definition at line 88 of file constants.h.

◆ WARM_START

#define WARM_START   (FALSE)

default warm start setting

Definition at line 89 of file constants.h.

◆ VERBOSE

#define VERBOSE   (TRUE)

default write out progress setting

Definition at line 90 of file constants.h.

◆ PRINT_ITER

#define PRINT_ITER   (1)

default frequency of printing

Definition at line 91 of file constants.h.

◆ RESET_NEWTON_ITER

#define RESET_NEWTON_ITER   (10000)

default frequency of performing a full Cholesky factorization

Definition at line 93 of file constants.h.

◆ ENABLE_DUAL_TERMINATION

#define ENABLE_DUAL_TERMINATION   (FALSE)

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

Definition at line 95 of file constants.h.

◆ DUAL_OBJECTIVE_LIMIT

#define DUAL_OBJECTIVE_LIMIT   (QPALM_INFTY)

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

Definition at line 96 of file constants.h.

◆ TIME_LIMIT

#define TIME_LIMIT   (QPALM_INFTY)

time limit after which the solver aborts

Definition at line 97 of file constants.h.

◆ MAX_RANK_UPDATE

#define MAX_RANK_UPDATE   160

maximum rank for the sparse factorization update

Definition at line 99 of file constants.h.

◆ MAX_RANK_UPDATE_FRACTION

#define MAX_RANK_UPDATE_FRACTION   0.1

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

Definition at line 100 of file constants.h.

◆ RELATIVE_REFINEMENT_TOLERANCE

#define RELATIVE_REFINEMENT_TOLERANCE   1e-10

relative tolerance on the residual for linear systems solving

Definition at line 102 of file constants.h.

◆ ABSOLUTE_REFINEMENT_TOLERANCE

#define ABSOLUTE_REFINEMENT_TOLERANCE   1e-12

absolute tolerance on the residual for linear systems solving

Definition at line 103 of file constants.h.

◆ MAX_REFINEMENT_ITERATIONS

#define MAX_REFINEMENT_ITERATIONS   3

maximum number of refinement iterations

Definition at line 104 of file constants.h.

◆ FACTORIZE_KKT

#define FACTORIZE_KKT   0

factorize the kkt system

Definition at line 107 of file constants.h.

◆ FACTORIZE_SCHUR

#define FACTORIZE_SCHUR   1

factorize the Schur complement

Definition at line 108 of file constants.h.

◆ FACTORIZE_KKT_OR_SCHUR

#define FACTORIZE_KKT_OR_SCHUR   2

select automatically between kkt system and schur complement

Definition at line 109 of file constants.h.

◆ FACTORIZATION_METHOD

#define FACTORIZATION_METHOD   FACTORIZE_KKT_OR_SCHUR

default method for solving the linear system

Definition at line 111 of file constants.h.

◆ ORDERING

#define ORDERING   AMD

ordering in the factorization

Definition at line 114 of file constants.h.