EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Linearization.h File Reference

What a transform returns and what a measurement update reads from it (decisions.md [linearization-forms], [innovation-statistics], [innovation-cholesky]): the UncertainInput concept of a transform's uncertain arguments, the linearization forms JacobianForm and RootForm, OutputWithCross, the output's Gaussian with its linearization in the input marked by withCross(), and Innovation, an observation's residual and its covariance, from which the NIS and the log-likelihood follow. More...

#include <cmath>
#include <concepts>
#include <expected>
#include <limits>
#include <optional>
#include <type_traits>
#include <utility>
#include <Eigen/Cholesky>
#include <EmrysFilter/Core/Macros.h>
#include <EmrysFilter/Core/Math.h>
#include <EmrysFilter/Core/Multiply.h>
#include <EmrysFilter/Core/Solve.h>
#include <EmrysFilter/Distributions/Gaussian.h>
#include <EmrysFilter/Spaces/Space.h>

Go to the source code of this file.

Classes

struct  Emrys::JacobianForm
 The Jacobian form of a linearization (decisions.md [linearization-forms]), which methods::linearized() and a Jacobian returned with the value compute (decisions.md [returned-jacobians]): the Jacobian \( H \) of the output in the marked input at its mean, and the cross-covariance \( \Sigma_{xy} = P H^T \). More...
struct  Emrys::RootForm
 The root form of a linearization (decisions.md [linearization-forms]), which every sigma-point method computes: the root \( S \) of the marked input's covariance that spread the points, \( S S^T = P \), and the whitened cross-covariance \( \Psi = S^{-1} \Sigma_{xy} = (H S)^T \), the weighted sum \( \sum_i w_i \xi_i \Delta y_i^T \) over the unit points \( \xi_i \) and the output deviations \( \Delta y_i \). More...
class  Emrys::OutputWithCross< InputSpace, OutputSpace, Form, Scalar >
 The result of transform() with an input marked by withCross(): the output's Gaussian and its linearization in that input, in the Form the method computes it, JacobianForm or RootForm (decisions.md [linearization-forms]). More...
class  Emrys::Innovation< Space, Scalar >
 The innovation of an update: the residual \( r \) of the observation from the predicted output, normalized in the output space, and its covariance \( S \), from which the update's statistics follow (decisions.md [innovation-statistics]). More...

Concepts

concept  Emrys::UncertainInput
 An argument of transform() that is uncertain: something with a mean, a space, and either a covariance, whose lower triangle covarianceLower() gives, or a lower-triangular root \( S \) of it, \( S S^T = \Sigma \), which root() gives.

Detailed Description

What a transform returns and what a measurement update reads from it (decisions.md [linearization-forms], [innovation-statistics], [innovation-cholesky]): the UncertainInput concept of a transform's uncertain arguments, the linearization forms JacobianForm and RootForm, OutputWithCross, the output's Gaussian with its linearization in the input marked by withCross(), and Innovation, an observation's residual and its covariance, from which the NIS and the log-likelihood follow.

Read Condition.h next.