cyqlone develop
Fast, parallel and vectorized solver for linear systems with optimal control structure.
Loading...
Searching...
No Matches
settings.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cyqlone/config.hpp>
4#include <cyqlone/qpalm/export.h>
5#include <chrono>
6
7namespace cyqlone::qpalm {
8
9using namespace std::chrono_literals;
10
11/// @ingroup topic-optimization-solvers
12struct CYQLONE_QPALM_EXPORT Settings {
13 /// Maximum number of (total) iterations.
14 unsigned max_outer_iter = 100;
15 unsigned max_inner_iter = 100;
16 unsigned max_total_inner_iter = 10000;
17 std::chrono::microseconds max_time = 5min;
18 /// Primal tolerance.
19 real_t tolerance = real_t(1e-8);
20 real_t dual_tolerance = real_t(1e-8);
21 real_t eq_constr_tolerance = real_t(1e-10);
22 real_t initial_inner_tolerance = real_t(1);
23 real_t ρ = real_t(1e-1);
24 real_t θ = 0.25;
25 real_t Δy = 100;
26 real_t Δy_always = 1;
27 real_t max_penalty_y = 1e9;
28 real_t initial_penalty_y = 20;
30 real_t Δx = 10;
31 real_t max_penalty_x = 1e7;
32 real_t boost_penalty_x = 1e12;
33 real_t initial_penalty_x = 1e7;
34 bool proximal = true;
35 bool recompute_eq_res = true; // TODO
36 bool recompute_inner = false;
37 bool recompute = true;
38 bool verbose = true;
41 bool linesearch_include_multipliers = true; // TODO
44 bool detailed_stats = false;
45 bool scale_newton_step = false; // TODO: can probably be removed
48
49 // TODO
50 bool operator==(const Settings &) const { return false; }
51 bool operator!=(const Settings &other) const { return !(*this == other); }
52};
53
54} // namespace cyqlone::qpalm
unsigned max_no_changes_active_set
Definition settings.hpp:40
real_t tolerance
Primal tolerance.
Definition settings.hpp:19
bool operator==(const Settings &) const
Definition settings.hpp:50
bool operator!=(const Settings &other) const
Definition settings.hpp:51
unsigned max_outer_iter
Maximum number of (total) iterations.
Definition settings.hpp:14
std::chrono::microseconds max_time
Definition settings.hpp:17