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