EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Emrys::roots Namespace Reference

The axes and repairs, each made by its factory (decisions.md [policy-factories]), and the roots taken by them: cholesky(), pivoted(), principal(), symmetric(), along(), ridge(), squareRoot(), and squareRootWithReport(). More...

Classes

struct  NoReport
 The report of axes or a repair with nothing to say, as Cholesky's: it either took the root or failed. More...
struct  ClampReport
 The report of Pivoted, Principal, and Symmetric: how many pivots or eigenvalues were below zero and taken as zero, which only rounding should give a covariance. More...
struct  RidgeReport
 The report of a Ridge: the ridge \( \delta \) it added to the diagonal. More...
struct  Cholesky
 Cholesky axes: the lower Cholesky factor \( L \), \( L L^T = P \), by Eigen's LLT, which fails on a covariance that is not positive definite. More...
struct  Pivoted
 Pivoted axes: \( \Pi^T L D^{1/2} \) from Eigen's pivoted LDL decomposition \( P = \Pi^T L D L^T \Pi \), with a negative pivot, which rounding can give a singular matrix, taken as zero. More...
struct  Principal
 Principal axes: \( U \Lambda^{1/2} \), the eigenvectors of \( P = U \Lambda U^T \) scaled by the roots of their eigenvalues, largest first, with a negative eigenvalue taken as zero, so that it never fails. More...
struct  Symmetric
 Symmetric axes: the principal square root \( P^{1/2} = U \Lambda^{1/2} U^T \), the one symmetric positive semidefinite root, with a negative eigenvalue taken as zero, so that it never fails. More...
struct  Along
 Axes along a direction: a root whose first column is parallel to \( d \), so that a sigma-point rule puts its first pair of points on the line through the mean along \( d \), as a split or a probe of the nonlinearity along \( d \) needs (decisions.md [splitting-hooks]). More...
struct  Ridge
 The ridge repair: the Gershgorin ridge of decisions.md [covariance-repair], added to the diagonal of a covariance whose root failed so that the root can be retried. More...
struct  WithFallbacks
 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...
struct  RootWithReport
 A root and the report of the axes that took it, from squareRootWithReport(). More...
struct  RootFailure
 Why squareRootWithReport() failed, and what each entry tried did. More...

Typedefs

template<typename Derived>
using RootMatrix = internal::SquareMatrixOf<Derived>
 The type of a root of the covariance or factor Derived: square, with a row and a column per row of it and its bounds, so that a bounded matrix allocates nothing [allocation].
using DefaultAxes = WithFallbacks<Cholesky, Pivoted>
 The axes every root the library takes uses unless told otherwise, cholesky(pivoted()): the Cholesky factor of a positive definite covariance, and the pivoted root of any other, so it never fails and never repairs (decisions.md [sigma-point-axes]).

Functions

template<typename... Fallbacks>
constexpr auto cholesky (Fallbacks... fallbacks)
template<typename... Fallbacks>
constexpr auto pivoted (Fallbacks... fallbacks)
template<typename... Fallbacks>
constexpr auto principal (Fallbacks... fallbacks)
template<typename... Fallbacks>
constexpr auto symmetric (Fallbacks... fallbacks)
template<typename Derived, typename... Fallbacks>
auto along (Eigen::MatrixBase< Derived > const &direction, Fallbacks... fallbacks)
template<double Relative = 1.0, double Absolute = 0.0>
constexpr Ridge< Relative, Absolute > ridge ()
template<typename Head, typename First, typename... Rest>
constexpr WithFallbacks< Head, First, Rest... > withFallbacks (Head axes, First first, Rest... rest)
template<Axes A, typename Derived>
auto squareRoot (A const &axes, Eigen::MatrixBase< Derived > const &cov)
template<Axes A, typename Derived>
auto squareRootWithReport (A const &axes, Eigen::MatrixBase< Derived > const &cov)

Detailed Description

The axes and repairs, each made by its factory (decisions.md [policy-factories]), and the roots taken by them: cholesky(), pivoted(), principal(), symmetric(), along(), ridge(), squareRoot(), and squareRootWithReport().