Sleipnir C++ API
Loading...
Searching...
No Matches
feasibility_restoration_cycle_detector.hpp
1
// Copyright (c) Sleipnir contributors
2
3
#pragma once
4
5
#include <limits>
6
7
namespace
slp {
8
19
template
<
typename
Scalar>
20
class
FeasibilityRestorationCycleDetector
{
21
public
:
25
void
record_entry
(Scalar constraint_violation) {
26
++m_num_entries;
27
if
(constraint_violation < Scalar(0.9) * m_min_entry_violation) {
28
m_min_entry_violation = constraint_violation;
29
m_num_stalled_entries = 0;
30
}
else
{
31
++m_num_stalled_entries;
32
}
33
}
34
47
bool
is_cycling
()
const
{
48
return
m_num_entries > 5 && m_num_stalled_entries >= 2;
49
}
50
51
private
:
52
int
m_num_entries = 0;
53
Scalar m_min_entry_violation = std::numeric_limits<Scalar>::infinity();
54
int
m_num_stalled_entries = 0;
55
};
56
57
}
// namespace slp
slp::FeasibilityRestorationCycleDetector
Definition
feasibility_restoration_cycle_detector.hpp:20
slp::FeasibilityRestorationCycleDetector::record_entry
void record_entry(Scalar constraint_violation)
Definition
feasibility_restoration_cycle_detector.hpp:25
slp::FeasibilityRestorationCycleDetector::is_cycling
bool is_cycling() const
Definition
feasibility_restoration_cycle_detector.hpp:47
include
sleipnir
optimization
solver
util
feasibility_restoration_cycle_detector.hpp
Generated on Mon Nov 2 2026 07:59:29 for Sleipnir C++ API by
1.9.8