QPALM
1.0.0
Proximal Augmented Lagrangian method for Quadratic Programs
Toggle main menu visibility
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
Functions
Typedefs
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
a
b
c
d
e
f
g
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
Variables
a
b
c
d
e
f
g
i
k
l
m
n
o
p
q
r
s
t
v
w
x
y
z
Files
File List
Globals
All
a
b
c
d
e
f
g
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Functions
b
c
e
g
i
k
l
m
n
p
q
s
u
v
Typedefs
Macros
a
c
d
e
f
g
i
l
m
n
o
p
q
r
s
t
v
w
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Macros
Modules
Pages
QPALM
include
constants.h
Go to the documentation of this file.
1
/**
2
* @file constants.h
3
* @author Ben Hermans
4
* @brief Constants used in QPALM
5
* @details This file contains the constants that are used as default settings and to set the solver status.
6
*/
7
#ifndef CONSTANTS_H
8
#define CONSTANTS_H
9
10
#ifdef __cplusplus
11
extern
"C"
{
12
#endif
13
14
/**
15
* @name Booleans
16
* @{
17
*/
18
#define TRUE 1
19
#define FALSE 0
20
/**
21
* @}
22
*/
23
24
25
/**
26
* @name Solver status
27
* @{
28
*/
29
30
#define QPALM_SOLVED (1)
/**< status to indicate the problem is solved to optimality given the specified tolerances */
31
#define QPALM_DUAL_TERMINATED (2)
/**< status to indicate the problem has a dual objective that is higher than the specified bound */
32
#define QPALM_MAX_ITER_REACHED (-2)
/**< status to indicate termination due to reaching the maximum number of iterations */
33
#define QPALM_PRIMAL_INFEASIBLE (-3)
/**< status to indicate the problem is primal infeasible */
34
#define QPALM_DUAL_INFEASIBLE (-4)
/**< status to indicate the problem is dual infeasible */
35
#define QPALM_TIME_LIMIT_REACHED (-5)
/**< status to indicate the problem's runtime has exceeded the specified time limit */
36
#define QPALM_UNSOLVED (-10)
/**< status to indicate the problem is unsolved. Only setup function has been called */
37
#define QPALM_ERROR (0)
/**< status to indicate an error has occured (this error should automatically be printed) */
38
39
/**
40
* @}
41
*/
42
43
/**
44
* @name Solver parameters and settings
45
* @{
46
*/
47
48
/**********************************
49
* Solver Parameters and Settings *
50
**********************************/
51
52
#ifndef QPALM_NULL
53
#define QPALM_NULL 0
/**< NULL, if something goes wrong during setup, the workspace pointer is set to this */
54
#endif
/* ifndef QPALM_NULL */
55
56
#ifndef QPALM_NAN
57
#define QPALM_NAN ((c_float)0x7fc00000UL)
/**< not a number, used for the solution if the problem is primal or dual infeasible */
58
#endif
/* ifndef QPALM_NAN */
59
60
#ifndef QPALM_INFTY
61
#define QPALM_INFTY ((c_float)1e20)
/**< infinity, used to indicate one-sided constraints */
62
#endif
/* ifndef QPALM_INFTY */
63
64
65
#define MAX_ITER (10000)
/**< default maximum number of iterations */
66
#define INNER_MAX_ITER (100)
/**< default maximum number of iterations per subproblem */
67
#define EPS_ABS (1e-4)
/**< default absolute convergence tolerance */
68
#define EPS_REL (1e-4)
/**< default relative convergence tolerance */
69
#define EPS_ABS_IN (1)
/**< default intermediate absolute convergence tolerance */
70
#define EPS_REL_IN (1)
/**< default intermediate relative convergence tolerance */
71
#define RHO (0.1)
/**< default tolerance scaling factor */
72
#define EPS_PRIM_INF (1e-5)
/**< default primal infeasibility tolerance */
73
#define EPS_DUAL_INF (1e-5)
/**< default dual infeasibility tolerance */
74
#define THETA (0.25)
/**< default penalty update criterion parameter */
75
#define DELTA (100)
/**< default penalty update factor */
76
#define SIGMA_MAX (1e9)
/**< default penalty cap */
77
#define SIGMA_INIT (2e1)
/**< default initial penalty parameter (guideline) */
78
#define PROXIMAL (TRUE)
/**< default use of proximal method of multipliers */
79
#define GAMMA_INIT (1E7)
/**< default initial proximal penalty parameter */
80
#define GAMMA_UPD (10)
/**< default proximal penalty update factor */
81
#define GAMMA_MAX (1E7)
/**< default proximal penalty cap */
82
83
#define SCALING (10)
/**< default number of scaling iterations */
84
#define MIN_SCALING (1e-12)
/**< minimum scaling value */
///< Minimum scaling value
85
#define MAX_SCALING (1e+04)
/**< maximum scaling value */
///< Maximum scaling value
86
87
#define NONCONVEX (FALSE)
/**< default use of nonconvex adjustments */
88
#define WARM_START (FALSE)
/**< default warm start setting */
89
#define VERBOSE (TRUE)
/**< default write out progress setting */
90
#define PRINT_ITER (1)
/**< default frequency of printing */
91
92
#define RESET_NEWTON_ITER (10000)
/**< default frequency of performing a full Cholesky factorization */
93
94
#define ENABLE_DUAL_TERMINATION (FALSE)
/**< enable termination after dual objective > something (useful in branch and bound) */
95
#define DUAL_OBJECTIVE_LIMIT (QPALM_INFTY)
/**< termination value for the dual objective (useful in branch and bound) */
96
#define TIME_LIMIT (QPALM_INFTY)
/**< time limit after which the solver aborts */
97
98
#define MAX_RANK_UPDATE 160
/**< maximum rank for the sparse factorization update */
99
#define MAX_RANK_UPDATE_FRACTION 0.1
/**< maximum rank (relative to n+m) for the factorization update */
100
101
#define RELATIVE_REFINEMENT_TOLERANCE 1e-10
/**< relative tolerance on the residual for linear systems solving */
102
#define ABSOLUTE_REFINEMENT_TOLERANCE 1e-12
/**< absolute tolerance on the residual for linear systems solving */
103
#define MAX_REFINEMENT_ITERATIONS 3
/**< maximum number of refinement iterations */
104
105
/* Options for settings->factorization_method */
106
#define FACTORIZE_KKT 0
/**< factorize the kkt system */
107
#define FACTORIZE_SCHUR 1
/**< factorize the Schur complement */
108
#define FACTORIZE_KKT_OR_SCHUR 2
/**< select automatically between kkt system and schur complement */
109
110
#define FACTORIZATION_METHOD FACTORIZE_KKT_OR_SCHUR
/**< default method for solving the linear system */
111
112
#include "ladel.h"
113
#define ORDERING AMD
/**< ordering in the factorization */
114
115
/**
116
* @}
117
*/
118
119
120
#ifdef __cplusplus
121
}
122
#endif
123
124
#endif
// ifndef CONSTANTS_H
Generated by
1.9.2