106 m_last_rejection_due_to_filter =
false;
132 constexpr Scalar
s_ϕ(2.3);
133 constexpr Scalar
s_θ(1.1);
139 constexpr Scalar
η_ϕ(1
e-8);
146 Scalar
ϕ = pow(
α, Scalar(1.5));
152 (Scalar(1) -
ϕ * γ_constraint) *
current_entry.constraint_violation;
160 m_last_rejection_due_to_filter =
false;
164 m_last_rejection_due_to_filter =
false;
170 m_last_rejection_due_to_filter =
true;
179 (Scalar(1) -
ϕ * γ_constraint) *
current_entry.constraint_violation});
191 return m_last_rejection_due_to_filter;
195 static constexpr Scalar γ_cost{1
e-8};
196 static constexpr Scalar γ_constraint{1e-5};
198 gch::small_vector<FilterEntry<Scalar>> m_filter;
200 bool m_last_rejection_due_to_filter =
false;
205 void add(
const FilterEntry<Scalar>& entry) {
208 [&](
const auto& elem) {
return elem.dominated_by(entry); });
210 m_filter.push_back(entry);
217 bool in_filter(
const FilterEntry<Scalar>& entry)
const {
219 return std::any_of(m_filter.begin(), m_filter.end(), [&](
const auto& elem) {
220 return entry.dominated_by(elem);
bool try_add(const FilterEntry< Scalar > ¤t_entry, const FilterEntry< Scalar > &trial_entry, const DenseVector &p_x, const SparseVector &g, Scalar α)
Definition filter.hpp:117
Scalar cost
The cost function's value.
Definition filter.hpp:25
FilterEntry(Scalar f, DenseVector &s, const DenseVector &c_e, const DenseVector &c_i, Scalar μ)
Definition filter.hpp:54
constexpr bool dominated_by(const FilterEntry< Scalar > &entry) const
Definition filter.hpp:64
Eigen::Vector< Scalar, Eigen::Dynamic > DenseVector
Type alias for dense vector.
Definition filter.hpp:22
Scalar constraint_violation
The constraint violation.
Definition filter.hpp:28
FilterEntry(Scalar f, const DenseVector &c_e)
Definition filter.hpp:44
constexpr FilterEntry(Scalar cost, Scalar constraint_violation=Scalar(0))
Definition filter.hpp:36