17 #ifndef OPTIMIZATION__UTILS_HPP_ 18 #define OPTIMIZATION__UTILS_HPP_ 32 namespace optimization
63 bool8_t jacobian()
const noexcept;
66 bool8_t hessian()
const noexcept;
89 template<
typename T,
int H,
int W>
90 typename std::enable_if_t<std::is_floating_point<T>::value,
bool8_t>
91 operator()(
const Eigen::Matrix<T, H, W> & lhs,
const Eigen::Matrix<T, H, W> & rhs)
const 93 return lhs.isApprox(rhs, std::numeric_limits<T>::epsilon());
96 template<
typename T,
int H,
int W>
97 typename std::enable_if_t<std::is_integral<T>::value,
bool8_t>
98 operator()(
const Eigen::Matrix<T, H, W> & lhs,
const Eigen::Matrix<T, H, W> & rhs)
const 107 template<
typename DomainValue,
typename ComparatorT = decltype(std::equal_to<DomainValue>())>
114 : m_comparator(comparator) {}
121 const DomainValue & value,
const ComputeMode & mode,
122 const ComparatorT & comparator = ComparatorT())
123 : m_comparator(comparator), m_last_mode(mode), m_last_value(value)
133 m_last_value = value;
145 if (m_comparator(
x, m_last_value)) {
148 ret = m_last_mode.score();
151 ret = m_last_mode.jacobian();
154 ret = m_last_mode.hessian();
164 const ComparatorT m_comparator;
165 DomainValue m_last_value;
173 #endif // OPTIMIZATION__UTILS_HPP_ Definition: common/optimization/include/optimization/utils.hpp:108
std::enable_if_t< std::is_integral< T >::value, bool8_t > operator()(const Eigen::Matrix< T, H, W > &lhs, const Eigen::Matrix< T, H, W > &rhs) const
Definition: common/optimization/include/optimization/utils.hpp:98
Definition: common/optimization/include/optimization/utils.hpp:38
bool8_t is_cached(const DomainValue &x, const ExpressionTerm &term) const noexcept
Definition: common/optimization/include/optimization/utils.hpp:142
void update(const DomainValue &value, const ComputeMode &mode) noexcept
Definition: common/optimization/include/optimization/utils.hpp:130
CacheStateMachine(const ComparatorT &comparator=ComparatorT())
Definition: common/optimization/include/optimization/utils.hpp:113
bool bool8_t
Definition: types.hpp:33
This file includes common type definition.
ExpressionTerm
Enum class representing expression terms.
Definition: common/optimization/include/optimization/utils.hpp:78
DifferentialState x
Definition: kinematic_bicycle.snippet.hpp:28
std::enable_if_t< std::is_floating_point< T >::value, bool8_t > operator()(const Eigen::Matrix< T, H, W > &lhs, const Eigen::Matrix< T, H, W > &rhs) const
Definition: common/optimization/include/optimization/utils.hpp:91
CacheStateMachine(const DomainValue &value, const ComputeMode &mode, const ComparatorT &comparator=ComparatorT())
Definition: common/optimization/include/optimization/utils.hpp:120
Generic equality comparison functor for eigen matrices.
Definition: common/optimization/include/optimization/utils.hpp:86
This file defines the lanelet2_map_provider_node class.
Definition: quick_sort.hpp:24