|
EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
|
The Kalman conditioning of a marked input on an observation of a transform's output (decisions.md [covariance-update-forms], [innovation-cholesky], [linearization-forms]): condition() with the updates::Standard, updates::Symmetric, and updates::Joseph covariance forms and the CovarianceUpdate concept, its result Conditioned, and statisticalLinearization() of a result in its marked input. More...
#include <array>#include <cstddef>#include <expected>#include <optional>#include <tuple>#include <type_traits>#include <utility>#include <Eigen/Cholesky>#include <EmrysFilter/Core/Macros.h>#include <EmrysFilter/Core/Multiply.h>#include <EmrysFilter/Core/Solve.h>#include <EmrysFilter/Distributions/Gaussian.h>#include <EmrysFilter/Models/Linearization.h>#include <EmrysFilter/Spaces/Reset.h>#include <EmrysFilter/Spaces/Space.h>#include <EmrysFilter/Spaces/TagPath.h>Go to the source code of this file.
Classes | |
| struct | Emrys::Conditioned< Space, OutputSpace, Scalar > |
| The result of condition(): the posterior, and the innovation, from which the log-likelihood of the observation follows when asked for. More... | |
| struct | Emrys::updates::Standard |
| The standard covariance update of condition(): \( P - K \Sigma_{xy}^T \), which is \( (I - K H) P \) written without \( H \). More... | |
| struct | Emrys::updates::Symmetric |
| The symmetric covariance update: \( P - K \Sigma_{yy} K^T \), equal to the standard form when \( K \) is the optimal gain, and made exactly symmetric. More... | |
| struct | Emrys::updates::Joseph |
| The Joseph covariance update: \( (I - K H) P (I - K H)^T + K R K^T \), with \( H \) and \( R \) from the statistical linearization of the output in the input (see statisticalLinearization()). More... | |
| struct | Emrys::StatisticalLinearization< InputSpace, OutputSpace, Scalar > |
| The statistical linearization of an output in an input, from statisticalLinearization(): the affine function of the input that best predicts the output in mean square, \( y \approx \bar y \boxplus H (x \boxminus \mu) \), and the covariance \( \Omega \) of what it leaves unexplained. More... | |
Namespaces | |
| namespace | Emrys::updates |
| The covariance update forms, each made by its factory (decisions.md [policy-factories], [covariance-update-forms]): standard(), symmetric(), and joseph(). | |
Concepts | |
| concept | Emrys::CovarianceUpdate |
| One of the covariance updates: updates::Standard, updates::Symmetric, or updates::Joseph. | |
Functions | |
| constexpr Standard | Emrys::updates::standard () |
| constexpr Symmetric | Emrys::updates::symmetric () |
| constexpr Joseph | Emrys::updates::joseph () |
| template<typename InputSpace, typename OutputSpace, typename Form, typename Scalar> | |
| StatisticalLinearization< InputSpace, OutputSpace, Scalar > | Emrys::statisticalLinearization (OutputWithCross< InputSpace, OutputSpace, Form, Scalar > const &predicted) |
| template<UncertainInput Prior, typename OutputSpace, typename LinearizationForm, typename Derived, CovarianceUpdate Form = updates::Standard> | |
| auto | Emrys::condition (Prior const &prior, OutputWithCross< typename Prior::SpaceType, OutputSpace, LinearizationForm, typename Prior::Scalar > const &predicted, Eigen::MatrixBase< Derived > const &observed, Form const &form={}) |
The Kalman conditioning of a marked input on an observation of a transform's output (decisions.md [covariance-update-forms], [innovation-cholesky], [linearization-forms]): condition() with the updates::Standard, updates::Symmetric, and updates::Joseph covariance forms and the CovarianceUpdate concept, its result Conditioned, and statisticalLinearization() of a result in its marked input.
It reads only what Linearization.h defines, so an update needs none of the transform's machinery. Read Methods.h next.