107 m_last_rejection_due_to_filter =
false;
133 constexpr Scalar
s_ϕ(2.3);
134 constexpr Scalar
s_θ(1.1);
140 constexpr Scalar
η_ϕ(1
e-8);
147 Scalar
ϕ = pow(
α, Scalar(1.5));
153 (Scalar(1) -
ϕ * γ_constraint) *
current_entry.constraint_violation;
161 m_last_rejection_due_to_filter =
false;
165 m_last_rejection_due_to_filter =
false;
171 m_last_rejection_due_to_filter =
true;
180 (Scalar(1) -
ϕ * γ_constraint) *
current_entry.constraint_violation});
192 return m_last_rejection_due_to_filter;
196 static constexpr Scalar γ_cost{1
e-8};
197 static constexpr Scalar γ_constraint{1e-5};
199 gch::small_vector<FilterEntry<Scalar>> m_filter;
201 bool m_last_rejection_due_to_filter =
false;
206 void add(
const FilterEntry<Scalar>& entry) {
209 [&](
const auto& elem) {
return elem.dominated_by(entry); });
211 m_filter.push_back(entry);
218 bool in_filter(
const FilterEntry<Scalar>& entry)
const {
220 return std::any_of(m_filter.begin(), m_filter.end(), [&](
const auto& elem) {
221 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:118
Scalar cost
The cost function's value.
Definition filter.hpp:26
FilterEntry(Scalar f, DenseVector &s, const DenseVector &c_e, const DenseVector &c_i, Scalar μ)
Definition filter.hpp:55
constexpr bool dominated_by(const FilterEntry< Scalar > &entry) const
Definition filter.hpp:65
Eigen::Vector< Scalar, Eigen::Dynamic > DenseVector
Type alias for dense vector.
Definition filter.hpp:23
Scalar constraint_violation
The constraint violation.
Definition filter.hpp:29
FilterEntry(Scalar f, const DenseVector &c_e)
Definition filter.hpp:45
constexpr FilterEntry(Scalar cost, Scalar constraint_violation=Scalar(0))
Definition filter.hpp:37