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);
137 (Scalar(1) - γ_constraint) *
current_entry.constraint_violation;
145 m_last_rejection_due_to_filter =
false;
149 m_last_rejection_due_to_filter =
false;
155 m_last_rejection_due_to_filter =
true;
164 (Scalar(1) - γ_constraint) *
current_entry.constraint_violation});
176 return m_last_rejection_due_to_filter;
180 static constexpr Scalar γ_cost{1
e-8};
181 static constexpr Scalar γ_constraint{1e-5};
183 gch::small_vector<FilterEntry<Scalar>> m_filter;
185 bool m_last_rejection_due_to_filter =
false;
190 void add(
const FilterEntry<Scalar>& entry) {
193 [&](
const auto& elem) {
return elem.dominated_by(entry); });
195 m_filter.push_back(entry);
202 bool in_filter(
const FilterEntry<Scalar>& entry)
const {
204 return std::any_of(m_filter.begin(), m_filter.end(), [&](
const auto& elem) {
205 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
bool update(const FilterEntry< Scalar > ¤t_entry, const FilterEntry< Scalar > &trial_entry, Scalar α, Scalar min_constraint_violation)
Definition filter.hpp:224
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