alpaqa develop
Nonconvex constrained optimization
Loading...
Searching...
No Matches
structs.ipp
Go to the documentation of this file.
1ENUM_TABLE(PANOCStopCrit, //
2 ENUM_MEMBER(ApproxKKT), //
3 ENUM_MEMBER(ApproxKKT2), //
4 ENUM_MEMBER(ProjGradNorm), //
5 ENUM_MEMBER(ProjGradNorm2), //
6 ENUM_MEMBER(ProjGradUnitNorm), //
7 ENUM_MEMBER(ProjGradUnitNorm2), //
8 ENUM_MEMBER(FPRNorm), //
9 ENUM_MEMBER(FPRNorm2), //
10);
11
12ENUM_TABLE(LBFGSStepSize, //
13 ENUM_MEMBER(BasedOnExternalStepSize), //
14 ENUM_MEMBER(BasedOnCurvature), //
15);
16
17PARAMS_TABLE(DynamicLoadFlags, //
18 PARAMS_MEMBER(global, ""), //
19 PARAMS_MEMBER(lazy, ""), //
20 PARAMS_MEMBER(nodelete, ""), //
21 PARAMS_MEMBER(deepbind, ""), //
22);
23
24PARAMS_TABLE_CONF(LBFGSParams, //
25 PARAMS_MEMBER(memory, ""), //
26 PARAMS_MEMBER(min_div_fac, ""), //
27 PARAMS_MEMBER(min_abs_s, ""), //
28 PARAMS_MEMBER(cbfgs, ""), //
29 PARAMS_MEMBER(force_pos_def, ""), //
30 PARAMS_MEMBER(stepsize, ""), //
31);
32
33PARAMS_TABLE_CONF(AndersonAccelParams, //
34 PARAMS_MEMBER(memory, ""), //
35 PARAMS_MEMBER(min_div_fac, ""), //
36);
37
38PARAMS_TABLE_CONF(CBFGSParams, //
39 PARAMS_MEMBER(α, ""), //
40 PARAMS_MEMBER(ϵ, ""), //
41);
43 PARAMS_MEMBER_ALIAS(alpha, α), //
44 PARAMS_MEMBER_ALIAS(epsilon, ϵ), //
45);
46
47PARAMS_TABLE_CONF(LipschitzEstimateParams, //
48 PARAMS_MEMBER(L_0, ""), //
49 PARAMS_MEMBER(δ, ""), //
50 PARAMS_MEMBER(ε, ""), //
51 PARAMS_MEMBER(Lγ_factor, ""), //
52);
53PARAMS_ALIAS_TABLE_CONF(LipschitzEstimateParams, //
54 PARAMS_MEMBER_ALIAS(delta, δ), //
55 PARAMS_MEMBER_ALIAS(epsilon, ε), //
56 PARAMS_MEMBER_ALIAS(L_gamma_factor, Lγ_factor), //
57);
58
59PARAMS_TABLE_CONF(PANTRParams, //
60 PARAMS_MEMBER(Lipschitz, ""), //
61 PARAMS_MEMBER(max_iter, ""), //
62 PARAMS_MEMBER(max_time, ""), //
63 PARAMS_MEMBER(L_min, ""), //
64 PARAMS_MEMBER(L_max, ""), //
65 PARAMS_MEMBER(stop_crit, ""), //
66 PARAMS_MEMBER(max_no_progress, ""), //
67 PARAMS_MEMBER(print_interval, ""), //
68 PARAMS_MEMBER(print_precision, ""), //
69 PARAMS_MEMBER(quadratic_upperbound_tolerance_factor, ""), //
70 PARAMS_MEMBER(TR_tolerance_factor, ""), //
71 PARAMS_MEMBER(ratio_threshold_acceptable, ""), //
72 PARAMS_MEMBER(ratio_threshold_good, ""), //
73 PARAMS_MEMBER(radius_factor_rejected, ""), //
74 PARAMS_MEMBER(radius_factor_acceptable, ""), //
75 PARAMS_MEMBER(radius_factor_good, ""), //
76 PARAMS_MEMBER(initial_radius, ""), //
77 PARAMS_MEMBER(min_radius, ""), //
78 PARAMS_MEMBER(compute_ratio_using_new_stepsize, ""), //
79 PARAMS_MEMBER(update_direction_on_prox_step, ""), //
80 PARAMS_MEMBER(recompute_last_prox_step_after_direction_reset,
81 ""), //
82 PARAMS_MEMBER(disable_acceleration, ""), //
83 PARAMS_MEMBER(ratio_approx_fbe_quadratic_model, ""), //
84);
85
86PARAMS_TABLE_CONF(PANOCParams, //
87 PARAMS_MEMBER(Lipschitz, ""), //
88 PARAMS_MEMBER(max_iter, ""), //
89 PARAMS_MEMBER(max_time, ""), //
90 PARAMS_MEMBER(min_linesearch_coefficient, ""), //
91 PARAMS_MEMBER(linesearch_coefficient_update_factor, ""), //
92 PARAMS_MEMBER(force_linesearch, ""), //
93 PARAMS_MEMBER(linesearch_strictness_factor, ""), //
94 PARAMS_MEMBER(L_min, ""), //
95 PARAMS_MEMBER(L_max, ""), //
96 PARAMS_MEMBER(stop_crit, ""), //
97 PARAMS_MEMBER(max_no_progress, ""), //
98 PARAMS_MEMBER(print_interval, ""), //
99 PARAMS_MEMBER(print_precision, ""), //
100 PARAMS_MEMBER(quadratic_upperbound_tolerance_factor, ""), //
101 PARAMS_MEMBER(linesearch_tolerance_factor, ""), //
102 PARAMS_MEMBER(update_direction_in_candidate, ""), //
103 PARAMS_MEMBER(recompute_last_prox_step_after_stepsize_change,
104 ""), //
105 PARAMS_MEMBER(eager_gradient_eval, ""), //
106);
107
108PARAMS_TABLE_CONF(FISTAParams, //
109 PARAMS_MEMBER(Lipschitz, ""), //
110 PARAMS_MEMBER(max_iter, ""), //
111 PARAMS_MEMBER(max_time, ""), //
112 PARAMS_MEMBER(L_min, ""), //
113 PARAMS_MEMBER(L_max, ""), //
114 PARAMS_MEMBER(stop_crit, ""), //
115 PARAMS_MEMBER(max_no_progress, ""), //
116 PARAMS_MEMBER(print_interval, ""), //
117 PARAMS_MEMBER(print_precision, ""), //
118 PARAMS_MEMBER(quadratic_upperbound_tolerance_factor, ""), //
119 PARAMS_MEMBER(disable_acceleration, ""), //
120);
121
122PARAMS_TABLE_CONF(ZeroFPRParams, //
123 PARAMS_MEMBER(Lipschitz, ""), //
124 PARAMS_MEMBER(max_iter, ""), //
125 PARAMS_MEMBER(max_time, ""), //
126 PARAMS_MEMBER(min_linesearch_coefficient, ""), //
127 PARAMS_MEMBER(force_linesearch, ""), //
128 PARAMS_MEMBER(linesearch_strictness_factor, ""), //
129 PARAMS_MEMBER(L_min, ""), //
130 PARAMS_MEMBER(L_max, ""), //
131 PARAMS_MEMBER(stop_crit, ""), //
132 PARAMS_MEMBER(max_no_progress, ""), //
133 PARAMS_MEMBER(print_interval, ""), //
134 PARAMS_MEMBER(print_precision, ""), //
135 PARAMS_MEMBER(quadratic_upperbound_tolerance_factor, ""), //
136 PARAMS_MEMBER(linesearch_tolerance_factor, ""), //
137 PARAMS_MEMBER(update_direction_in_candidate, ""), //
138 PARAMS_MEMBER(update_direction_in_accel, ""), //
139 PARAMS_MEMBER(recompute_last_prox_step_after_stepsize_change,
140 ""), //
141 PARAMS_MEMBER(update_direction_from_prox_step, ""), //
142);
143
144PARAMS_TABLE_CONF(LBFGSDirectionParams, //
145 PARAMS_MEMBER(rescale_on_step_size_changes, ""), //
146);
147
148PARAMS_TABLE_CONF(AndersonDirectionParams, //
149 PARAMS_MEMBER(rescale_on_step_size_changes, ""), //
150);
151
152PARAMS_TABLE_CONF(StructuredLBFGSDirectionParams, //
153 PARAMS_MEMBER(hessian_vec_factor, ""), //
154 PARAMS_MEMBER(hessian_vec_finite_differences, ""), //
155 PARAMS_MEMBER(full_augmented_hessian, ""), //
156);
157
158PARAMS_TABLE_CONF(NewtonTRDirectionParams, //
159 PARAMS_MEMBER(hessian_vec_factor, ""), //
161 PARAMS_MEMBER(finite_diff_stepsize, ""), //
162);
163
164PARAMS_TABLE_CONF(SteihaugCGParams, //
165 PARAMS_MEMBER(tol_scale, ""), //
166 PARAMS_MEMBER(tol_scale_root, ""), //
167 PARAMS_MEMBER(tol_max, ""), //
168 PARAMS_MEMBER(max_iter_factor, ""), //
169);
170
171PARAMS_TABLE_CONF(StructuredNewtonRegularizationParams, //
172 PARAMS_MEMBER(min_eig, ""), //
173 PARAMS_MEMBER(print_eig, ""), //
174);
175
176PARAMS_TABLE_CONF(StructuredNewtonDirectionParams, //
177 PARAMS_MEMBER(hessian_vec_factor, ""), //
178);
179
180PARAMS_TABLE_CONF(ConvexNewtonRegularizationParams, //
181 PARAMS_MEMBER(ζ, ""), //
182 PARAMS_MEMBER(ν, ""), //
183 PARAMS_MEMBER(ldlt, ""), //
184);
185
186PARAMS_TABLE_CONF(ConvexNewtonDirectionParams, //
187 PARAMS_MEMBER(hessian_vec_factor, ""), //
188 PARAMS_MEMBER(quadratic, ""), //
189);
190
191PARAMS_TABLE_CONF(ALMParams, //
192 PARAMS_MEMBER(tolerance, ""), //
193 PARAMS_MEMBER(dual_tolerance, ""), //
194 PARAMS_MEMBER(penalty_update_factor, ""), //
195 PARAMS_MEMBER(initial_penalty, ""), //
196 PARAMS_MEMBER(initial_penalty_factor, ""), //
197 PARAMS_MEMBER(initial_tolerance, ""), //
198 PARAMS_MEMBER(tolerance_update_factor, ""), //
199 PARAMS_MEMBER(rel_penalty_increase_threshold, ""), //
200 PARAMS_MEMBER(max_multiplier, ""), //
201 PARAMS_MEMBER(max_penalty, ""), //
202 PARAMS_MEMBER(min_penalty, ""), //
203 PARAMS_MEMBER(max_iter, ""), //
204 PARAMS_MEMBER(max_time, ""), //
205 PARAMS_MEMBER(print_interval, ""), //
206 PARAMS_MEMBER(print_precision, ""), //
207 PARAMS_MEMBER(single_penalty_factor, ""), //
208);
209
210#if ALPAQA_WITH_OCP
211PARAMS_TABLE_CONF(PANOCOCPParams, //
212 PARAMS_MEMBER(Lipschitz, ""), //
213 PARAMS_MEMBER(max_iter, ""), //
214 PARAMS_MEMBER(max_time, ""), //
215 PARAMS_MEMBER(min_linesearch_coefficient, ""), //
216 PARAMS_MEMBER(linesearch_strictness_factor, ""), //
217 PARAMS_MEMBER(L_min, ""), //
218 PARAMS_MEMBER(L_max, ""), //
219 PARAMS_MEMBER(L_max_inc, ""), //
220 PARAMS_MEMBER(stop_crit, ""), //
221 PARAMS_MEMBER(max_no_progress, ""), //
222 PARAMS_MEMBER(gn_interval, ""), //
223 PARAMS_MEMBER(gn_sticky, ""), //
224 PARAMS_MEMBER(reset_lbfgs_on_gn_step, ""), //
225 PARAMS_MEMBER(lqr_factor_cholesky, ""), //
226 PARAMS_MEMBER(lbfgs_params, ""), //
227 PARAMS_MEMBER(print_interval, ""), //
228 PARAMS_MEMBER(print_precision, ""), //
229 PARAMS_MEMBER(quadratic_upperbound_tolerance_factor, ""), //
230 PARAMS_MEMBER(linesearch_tolerance_factor, ""), //
231 PARAMS_MEMBER(disable_acceleration, ""), //
232);
233#endif
auto finite_diff(const std::function< real_t(crvec)> &f, crvec x)
#define ENUM_TABLE(type_,...)
Helper macro to easily specialize alpaqa::params::enum_table.
Definition structs.hpp:93
#define PARAMS_ALIAS_TABLE_CONF(type_,...)
Helper macro to easily specialize alpaqa::params::attribute_alias_table.
Definition structs.hpp:66
#define ENUM_MEMBER(name,...)
Helper macro to easily initialize a alpaqa::params::enum_table_t.
Definition structs.hpp:102
#define PARAMS_TABLE_CONF(type_,...)
Helper macro to easily specialize alpaqa::params::attribute_table.
Definition structs.hpp:32
#define PARAMS_MEMBER(name,...)
Helper macro to easily initialize a alpaqa::params::attribute_table_t.
Definition structs.hpp:41
#define PARAMS_TABLE(type_,...)
Helper macro to easily specialize alpaqa::params::attribute_table.
Definition structs.hpp:24
#define PARAMS_MEMBER_ALIAS(alias, name)
Helper macro to easily initialize a alpaqa::params::attribute_alias_table_t.
Definition structs.hpp:75