|
EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
|
Axes that can fail, followed by their fallbacks, tried in order (decisions.md [sigma-point-axes]): a repair, which retries Head on the covariance it repairs, or other axes, which take the root themselves. More...
#include <EmrysFilter/Distributions/Roots.h>
Public Types | |
| template<typename Scalar> | |
| using | Report = std::variant<internal::ReportOfT<Head, Scalar>, internal::ReportOfT<Fallbacks, Scalar>...> |
| The report of the entry that succeeded, at its index. | |
| template<typename Scalar> | |
| using | FailureReport |
| The report of every entry, on failure. | |
Public Member Functions | |
| template<typename Derived> | |
| internal::RootResult< canFail, internal::SquareMatrixOf< Derived > > | root (Eigen::MatrixBase< Derived > const &cov) const |
| template<typename Derived, typename Sink> | |
| internal::RootResult< canFail, internal::SquareMatrixOf< Derived > > | root (Eigen::MatrixBase< Derived > const &cov, Sink &&sink) const |
| template<typename Derived> | |
| internal::RootResult< canFail, internal::SquareMatrixOf< Derived > > | rootFromFactor (Eigen::MatrixBase< Derived > const &factor) const |
Public Attributes | |
| Head | head |
| the axes tried first | |
| std::tuple< Fallbacks... > | fallbacks |
| the entries tried after it, in order | |
Static Public Attributes | |
| static constexpr bool | canFail |
| Whether the list can fail: whether its last entry can. | |
Axes that can fail, followed by their fallbacks, tried in order (decisions.md [sigma-point-axes]): a repair, which retries Head on the covariance it repairs, or other axes, which take the root themselves.
The first entry that succeeds gives the root; the list fails, with the last entry's error, only when every entry does, so it can fail exactly when its last entry can. Made by the factories of axes that can fail, given their fallbacks: cholesky(ridge(), pivoted()).
Refused at compile time, each with a message: a fallback after axes that cannot fail; an entry that is neither axes nor a repair; a fallback after an entry that cannot fail, which is never reached; and a list as an entry, since the list is flat.
From a factor, Head and each axes after it take their root from the factor; a repair works on the covariance formed from it.
Its report, for roots::squareRootWithReport(), is a std::variant of the entries' reports whose index is the entry that succeeded, and on failure a std::tuple of each entry's report.
| Head | axes that can fail |
| Fallbacks | repairs and axes, the last of which may or may not fail |
| using Emrys::roots::WithFallbacks< Head, Fallbacks >::FailureReport |
The report of every entry, on failure.
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
staticconstexpr |
Whether the list can fail: whether its last entry can.