21 #include <type_traits>
36 template <
class particle_hypothesis_t>
58 std::optional<CovarianceMatrix>
cov,
69 template <
typename other_particle_hypothesis_t>
93 std::optional<CovarianceMatrix>
cov,
97 pos4.segment<3>(
ePos0), pos4[
eTime], dir, qOverP, *surface, geoCtx,
101 return bound.error();
128 ip.template head<2>() =
m_params.template head<2>();
139 if (not
m_cov.has_value()) {
143 return m_cov.value().template topLeftCorner<2, 2>();
149 if (not
m_cov.has_value()) {
154 ipCov.template topLeftCorner<2, 2>() =
155 m_cov.value().template topLeftCorner<2, 2>();
156 ipCov.template block<2, 1>(0, 2) =
158 ipCov.template block<1, 2>(2, 0) =
167 template <BoundIndices kIndex>
185 pos4.segment<3>(
ePos0) =
255 std::optional<BoundSquareMatrix>
m_cov;
288 return not(lhs == rhs);