EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Emrys::roots::Along< Vector > Struct Template Reference

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...

#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

Public Attributes

Vector direction
 \( d \), in the covariance's coordinates

Static Public Attributes

static constexpr bool canFail = true
 a direction outside the covariance's range has no length

Detailed Description

template<typename Vector>
struct Emrys::roots::Along< Vector >

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]).

It is \( S = L Q \) for the lower Cholesky factor \( L \) and the Householder reflection \( Q \) that takes \( e_1 \) to \( u = L^{-1} d / \lVert L^{-1} d \rVert \), with the first column's sign chosen so that it points along \( d \), so its first column is \( d / \sqrt{d^T P^{-1} d} \), a step of one standard deviation along \( d \).

It fails when \( L \) does, on a covariance that is not positive definite, and when \( d \) is zero or has no finite length in \( P^{-1} \), so on a state with a block known exactly it is written along(d, pivoted()). From a factor it takes \( L \) by triangularization, and fails when \( d \) leaves the range of \( L \).

Template Parameters
Vectorthe direction's type, a column vector
See also
along()

Member Function Documentation

◆ root()

template<typename Vector>
template<typename Derived>
std::expected< internal::SquareMatrixOf< Derived >, GaussianError > Emrys::roots::Along< Vector >::root ( Eigen::MatrixBase< Derived > const & cov) const
inlinenodiscard
Returns
the root of cov, of which only the lower triangle is read, whose first column is along the direction

◆ rootFromFactor()

template<typename Vector>
template<typename Derived>
std::expected< internal::SquareMatrixOf< Derived >, GaussianError > Emrys::roots::Along< Vector >::rootFromFactor ( Eigen::MatrixBase< Derived > const & factor) const
inlinenodiscard
Returns
the root of \( F F^T \) for factor whose first column is along the direction

The documentation for this struct was generated from the following file:
  • EmrysFilter/Distributions/Roots.h