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

A set of sigma points other than Unscented's: a method that evaluates a function at weighted points given in the coordinates of a root of the covariance, with one weight per point for the mean and the covariance alike. More...

#include <EmrysFilter/Models/Methods.h>

Concept definition

template<typename T>
concept PointSet = requires(Eigen::Index n, Eigen::MatrixXd & points, Eigen::VectorXd & weights) {
{ T::pointCount(n) } -> std::convertible_to<Eigen::Index>;
{ T::unitPoints(n, points, weights) } -> std::same_as<Eigen::Index>;
}
A set of sigma points other than Unscented's: a method that evaluates a function at weighted points g...
Definition Methods.h:703

Detailed Description

A set of sigma points other than Unscented's: a method that evaluates a function at weighted points given in the coordinates of a root of the covariance, with one weight per point for the mean and the covariance alike.

Cubature, SphericalSimplex, and GaussHermite are the library's (decisions.md [sigma-point-sets]). One of the user's own is any type with the two static members below, with nothing of the library's specialized, and is then a TransformMethod: a measurement's method and a filter's prediction method (decisions.md [user-extension-points]). usage.md, "Writing a sigma-point set", writes one.

  • static constexpr Eigen::Index pointCount(Eigen::Index n): the number of points over \( n > 0 \) coordinates, a constant expression, so that the points of a fixed-size input are sized at compile time; at most MaxPointCount over a fixed-size input.
  • template <typename Points, typename Weights> static Eigen::Index unitPoints(Eigen::Index n, Points & points, Weights & weights): fills points, an \( n \times \mathrm{pointCount}(n) \) matrix in the transform's scalar (its Scalar), with the points \( \xi_j \) as its columns, and weights, a vector of as many, with weights that sum to one and give the points mean zero and identity covariance, and returns the index of the point the output mean is taken about as a tangent-space mean, the center or the heaviest point. Both arrive sized, with fixed sizes where the input's are, so a set may compute its constants at compile time, as Cubature does.

Over no coordinates every set is the mean alone, which the transform handles before calling either.