akreon-convex
Typed convex modeling, conic canonicalization, and primal-dual optimization in C++26.
Loading...
Searching...
No Matches
solver_config.hpp
Go to the documentation of this file.
1/*
2 * Copyright © 2025-2026 Akreon LLC
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#pragma once
7
8#include "akreon/linalg/numerical_config.hpp"
9#include "akreon/linalg/vector/algebra_util.hpp"
10
11namespace config {
16#ifndef PD_IPM_STEPS
17#define PD_IPM_STEPS 32
18#endif
19
23template <linalg::Real T>
25 T global_eps{1e-12};
26 T eq_eps{1e-8};
27};
28
32template <linalg::Real T>
34 std::size_t steps{PD_IPM_STEPS};
35 std::size_t backtrack_steps{64};
37 T dual_feas_tol{1e-5};
39 T Delta{2 * linalg::ln2_v<T>};
40 FactorConfig<T> schur{.tol = T(1e-12),
41 .floor_eps = T(1e-14)};
43};
44
58
59} // namespace config
SolverResult
SolverResult.
#define PD_IPM_STEPS
(dakre) note increase constexpr steps / depth for # steps to increase here for constexpr usage
T primal_feas_tol
tolerance for primal feasbility
T Delta
relative neighborhood around F(Beta)
std::size_t steps
total number of iter
std::size_t backtrack_steps
total number of backtracking steps
RegularizationConfig< T > reg
Regularization config.
T dual_feas_tol
tolerance for dual feasbility
T duality_gap_tol
tolerance for complementarity
FactorConfig< T > schur
Schur Factor Config.
RegularizationConfig.
T global_eps
tikhonov reg applied to full schur kkt
T eq_eps
tikhonov reg applied to only weak equality dir