EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Emrys::methods::Cubature Struct Reference

Cubature method: the \( 2L \) points \( \mu \boxplus \pm \sqrt{L} \, S_j \) over the joint input space of dimension \( L \), for each column \( S_j \) of a root of the joint covariance, equally weighted by \( 1 / (2L) \), with no center point and no parameter. More...

#include <EmrysFilter/Models/Methods.h>

Static Public Member Functions

static constexpr Eigen::Index pointCount (Eigen::Index n)
template<typename Points, typename Weights>
static Eigen::Index unitPoints (Eigen::Index n, Points &points, Weights &weights)
 Fills points, \( n \times 2n \), with \( \pm \sqrt{n} \, e_i \), the plus points first, and weights with \( 1 / (2n) \) each, over \( n > 0 \) coordinates; over a fixed n in float or double the constants are the compiler's (internal::takesDoubleConstants).

Detailed Description

Cubature method: the \( 2L \) points \( \mu \boxplus \pm \sqrt{L} \, S_j \) over the joint input space of dimension \( L \), for each column \( S_j \) of a root of the joint covariance, equally weighted by \( 1 / (2L) \), with no center point and no parameter.

Exact for polynomials of degree three in a Gaussian input. Over no coordinates it is the mean alone.

The third-degree spherical-radial cubature rule of the cubature Kalman filter of Arasaratnam and Haykin (2009), as Arasaratnam, Haykin, and Hurd (2010), §IV-A, state it. It is Unscented with \( \alpha = 1, \beta = 0, \kappa = 0 \), whose center point has weight zero, without evaluating the function there. The output mean is a tangent-space mean about the first point's output (decisions.md [sigma-point-sets]).

Member Function Documentation

◆ pointCount()

constexpr Eigen::Index Emrys::methods::Cubature::pointCount ( Eigen::Index n)
inlinestaticnodiscardconstexpr
Returns
the points over n coordinates, \( 2n \)

◆ unitPoints()

template<typename Points, typename Weights>
Eigen::Index Emrys::methods::Cubature::unitPoints ( Eigen::Index n,
Points & points,
Weights & weights )
inlinestatic

Fills points, \( n \times 2n \), with \( \pm \sqrt{n} \, e_i \), the plus points first, and weights with \( 1 / (2n) \) each, over \( n > 0 \) coordinates; over a fixed n in float or double the constants are the compiler's (internal::takesDoubleConstants).

Returns
the point the output mean is taken about, the first

The documentation for this struct was generated from the following file: