|
EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
|
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...
#include <EmrysFilter/Distributions/Roots.h>
Public Member Functions | |
| template<typename Derived> | |
| std::expected< internal::SquareMatrixOf< Derived >, GaussianError > | root (Eigen::MatrixBase< Derived > const &cov) const |
| template<typename Derived> | |
| std::expected< internal::SquareMatrixOf< Derived >, GaussianError > | rootFromFactor (Eigen::MatrixBase< Derived > const &factor) const |
Static Public Attributes | |
| static constexpr bool | canFail = true |
| a covariance that is not positive definite has no Cholesky factor | |
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.
The unique root of a positive definite matrix that is lower triangular with a positive diagonal, an analytic function of \( P \), the cheapest to take, and the factor the square-root forms hold, so that every form spreads the same points (decisions.md [sigma-point-axes]). Column \( j \) is the variation of coordinates \( j \) onward given the earlier ones, so the axes depend on the order of the coordinates.
From a factor it triangularizes, which never fails: a factor of a singular matrix gives a root with a zero on its diagonal, where the covariance's factorization fails and a list moves on to its fallbacks. A covariance with NaN or infinity in its lower triangle fails with GaussianError::NonFinite, one that is not positive definite with GaussianError::NotPositiveDefinite.
|
inlinenodiscard |
|
inlinenodiscard |