99 m_last_rejection_due_to_filter =
false;
121 constexpr Scalar
s_ϕ(2.3);
122 constexpr Scalar
s_θ(1.1);
128 constexpr Scalar
η_ϕ(1
e-8);
135 Scalar
ϕ = pow(
α, Scalar(1.5));
141 (Scalar(1) -
ϕ * γ_constraint) *
current_entry.constraint_violation;
149 m_last_rejection_due_to_filter =
false;
153 m_last_rejection_due_to_filter =
false;
159 m_last_rejection_due_to_filter =
true;
168 (Scalar(1) -
ϕ * γ_constraint) *
current_entry.constraint_violation});
180 return m_last_rejection_due_to_filter;
184 static constexpr Scalar γ_cost{1
e-8};
185 static constexpr Scalar γ_constraint{1e-5};
187 gch::small_vector<FilterEntry<Scalar>> m_filter;
189 bool m_last_rejection_due_to_filter =
false;
194 void add(
const FilterEntry<Scalar>& entry) {
197 [&](
const auto& elem) {
return elem.dominated_by(entry); });
199 m_filter.push_back(entry);
206 bool in_filter(
const FilterEntry<Scalar>& entry)
const {
208 return std::any_of(m_filter.begin(), m_filter.end(), [&](
const auto& elem) {
209 return entry.dominated_by(elem);
bool try_add(const FilterEntry< Scalar > ¤t_entry, const FilterEntry< Scalar > &trial_entry, Scalar D_ϕ, Scalar α)
Definition filter.hpp:109
Scalar cost
The cost function's value.
Definition filter.hpp:24
FilterEntry(Scalar f, DenseVector &s, const DenseVector &c_e, const DenseVector &c_i, Scalar μ)
Definition filter.hpp:53
constexpr bool dominated_by(const FilterEntry< Scalar > &entry) const
Definition filter.hpp:63
Eigen::Vector< Scalar, Eigen::Dynamic > DenseVector
Type alias for dense vector.
Definition filter.hpp:21
Scalar constraint_violation
The constraint violation.
Definition filter.hpp:27
FilterEntry(Scalar f, const DenseVector &c_e)
Definition filter.hpp:43
constexpr FilterEntry(Scalar cost, Scalar constraint_violation=Scalar(0))
Definition filter.hpp:35