|
EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
|
The policies a model is built from, and the marks on a step's arguments (decisions.md [model-policies], [tag-addressing]): reads(), writes(), affineIn(), additiveNoise(), continuousNoise(), logLikelihood(), and outputSpace(), each a call returning an object of its own type, which processModel() and measurementModel() take after the function in any order; the internal PolicySet, which finds each in an argument pack; the placing of additive noise in an output space; and sure(), which marks a known input of predict() or observe() by the tag of its space. More...
#include <array>#include <cstddef>#include <functional>#include <optional>#include <tuple>#include <type_traits>#include <utility>#include <EmrysFilter/Core/Forwarding.h>#include <EmrysFilter/Core/Macros.h>#include <EmrysFilter/Core/Math.h>#include <EmrysFilter/Distributions/Gaussian.h>#include <EmrysFilter/Distributions/Mixture.h>#include <EmrysFilter/Distributions/Product.h>#include <EmrysFilter/Spaces/Composite.h>#include <EmrysFilter/Spaces/Coordinates.h>#include <EmrysFilter/Spaces/Space.h>#include <EmrysFilter/Spaces/Subspace.h>#include <EmrysFilter/Spaces/TagPath.h>Go to the source code of this file.
Classes | |
| struct | Emrys::Reads< Items > |
| What a model reads, as reads() declares it: the items, each a path into the state or the tag of an input of the call, under a name (decisions.md [model-policies]). More... | |
| struct | Emrys::Writes< Paths > |
| What a model writes, as writes() declares it: the blocks its function's result fills (decisions.md [model-policies]). More... | |
| struct | Emrys::AffineIn< Names > |
| The input names a model's function is affine in, given the rest, as affineIn() declares them (decisions.md [model-policies], [affine-coordinates]): a sigma-point method factors those coordinates out and spreads its points over the others alone. More... | |
| class | Emrys::AdditiveNoise< Parts > |
| Noise added to a model's output, \( z = h(x) \boxplus v \), as additiveNoise() declares it (decisions.md [additive-noise], [model-policies]): the function is transformed once, and the noise only widens and shifts the result. More... | |
| class | Emrys::ModeNoise< Axis, Part > |
| Additive mixture noise whose components are the values of a mode axis, as additiveNoise(mixture).byMode<Axis>() declares it (decisions.md [imm]): the Markov outlier model, in which a sensor's outlier state is a mode of the target that persists as the mode chain says. More... | |
| class | Emrys::ContinuousNoise< Parts > |
| A process model's white-noise spectral density, as continuousNoise() declares it, placed by tag path on blocks of the output and discretized over the step by the model (decisions.md [continuous-time-noise], [model-policies]): \( Q_c \, \Delta t \) on each block's differences. More... | |
| struct | Emrys::LogLikelihood< G > |
| A measurement model's own \( \log p(z \mid x) \) at a state point, as logLikelihood() declares it, for the filters that weight points (decisions.md [likelihood-measurements], [model-policies]): a function g(in, x, z) of the model's input space instance, its input vector, and the observation. More... | |
| struct | Emrys::Sample< G > |
| A draw of the observation that a measurement model known by its likelihood alone makes of a state, as sample() declares it, for simulate() (decisions.md [likelihood-measurements], [model-policies]): a function g(in, x, rng) of the model's input space instance, its input vector, and the caller's generator, returning the observation. More... | |
| struct | Emrys::OutputSpace< X > |
| A model's output space given by its instance, or computed from the state's space, as outputSpace() declares it (decisions.md [measurement-space-functions], [model-policies]): for an output with a resizable block, whose size the type does not fix. More... | |
| struct | Emrys::Sure< S, Vector > |
| A sure input of predict() or observe(): a known value in the tagged space S, as sure() marks it (decisions.md [prediction-inputs], [tag-addressing]). More... | |
| struct | Emrys::Consider< Paths > |
| The blocks of the state that a Kalman update considers rather than estimates, as consider() names them (decisions.md [consider-states]): the Schmidt-Kalman update of Schmidt (1966). More... | |
Functions | |
| template<typename... Items> | |
| auto | Emrys::reads (Items const &...) |
| template<PathValue... Paths> | |
| auto | Emrys::writes (Paths const &...) |
| template<PathValue... Names> | |
| auto | Emrys::affineIn (Names const &...) |
| template<typename... Parts> | |
| AdditiveNoise< typename internal::HeldOf< std::unwrap_ref_decay_t< Parts > >::type... > | Emrys::additiveNoise (Parts &&... parts) |
| template<typename... Parts> | |
| ContinuousNoise< std::remove_cvref_t< Parts >... > | Emrys::continuousNoise (Parts &&... parts) |
| template<typename G> requires (!MatrixExpression<G> && !Space<std::remove_cvref_t<G>>) | |
| LogLikelihood< std::remove_cvref_t< G > > | Emrys::logLikelihood (G &&function) |
| template<typename G> requires (!MatrixExpression<G> && !Space<std::remove_cvref_t<G>>) | |
| Sample< std::remove_cvref_t< G > > | Emrys::sample (G &&function) |
| template<typename X> requires (!MatrixExpression<X>) | |
| OutputSpace< std::remove_cvref_t< X > > | Emrys::outputSpace (X &&x) |
| template<FixedSizeSpace S, MatrixExpression V> requires Space<S> | |
| auto | Emrys::sure (V &&value) |
| template<Space S, MatrixExpression V> | |
| auto | Emrys::sure (S space, V &&value) |
| template<PathValue... Paths> | |
| constexpr Consider< internal::PathOf< Paths >... > | Emrys::consider (Paths const &...) |
The policies a model is built from, and the marks on a step's arguments (decisions.md [model-policies], [tag-addressing]): reads(), writes(), affineIn(), additiveNoise(), continuousNoise(), logLikelihood(), and outputSpace(), each a call returning an object of its own type, which processModel() and measurementModel() take after the function in any order; the internal PolicySet, which finds each in an argument pack; the placing of additive noise in an output space; and sure(), which marks a known input of predict() or observe() by the tag of its space.
Read MeasurementModel.h next.