|
EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
|
The update of a Gaussian by a measurement (decisions.md [templated-measurements], [weighted-branches], [covariance-update-forms], [innovation-statistics], [linearization-reference], [rb-point-mass]): update() of a state by a measurement that reads part of it, with one UpdateBranch per noise component, and update() given a block from outside the Gaussian. More...
#include <array>#include <concepts>#include <cstddef>#include <expected>#include <optional>#include <span>#include <tuple>#include <type_traits>#include <utility>#include <variant>#include <vector>#include <Eigen/Cholesky>#include <EmrysFilter/Core/Allocation.h>#include <EmrysFilter/Core/Execution.h>#include <EmrysFilter/Core/Macros.h>#include <EmrysFilter/Core/Multiply.h>#include <EmrysFilter/Core/Solve.h>#include <EmrysFilter/Core/Weights.h>#include <EmrysFilter/Distributions/Gaussian.h>#include <EmrysFilter/Distributions/Mixture.h>#include <EmrysFilter/Distributions/Product.h>#include <EmrysFilter/Models/IteratedUpdate.h>#include <EmrysFilter/Models/Likelihood.h>#include <EmrysFilter/Models/MeasurementModel.h>#include <EmrysFilter/Models/MeasurementReads.h>#include <EmrysFilter/Models/MeasurementUpdate.h>#include <EmrysFilter/Models/Transform.h>#include <EmrysFilter/Spaces/Composite.h>#include <EmrysFilter/Spaces/Coordinates.h>#include <EmrysFilter/Spaces/Indexing.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::GivenBlock< Space, P, Value > |
| A block of a state given from outside the Gaussian being updated, as given() makes it, for update(prior, measurement, given): the block named by the path P of a state in Space, given as Value. More... | |
Functions | |
| template<UncertainInput Prior, Measurement M> | |
| auto | Emrys::update (Prior const &prior, M const &measurement) |
| template<UncertainInput Prior, Measurement M, typename Reference> | |
| auto | Emrys::update (Prior const &prior, M const &measurement, LinearizedAbout< Reference > const &about) |
| template<typename P, typename Space, typename Value> | |
| GivenBlock< Space, P, Value > | Emrys::given (Space const &space, Value const &value) |
| template<typename P, typename Space, typename Value> | |
| void | Emrys::given (Space const &space, Value const &&value)=delete |
| given() of a temporary value is deleted: the mark refers to the value, which would be gone at the end of the full expression, so a mark kept in a variable would dangle. | |
| template<UncertainInput Prior, Measurement M, typename Space, typename P, typename Value> | |
| auto | Emrys::update (Prior const &prior, M const &measurement, GivenBlock< Space, P, Value > const &pinned) |
The update of a Gaussian by a measurement (decisions.md [templated-measurements], [weighted-branches], [covariance-update-forms], [innovation-statistics], [linearization-reference], [rb-point-mass]): update() of a state by a measurement that reads part of it, with one UpdateBranch per noise component, and update() given a block from outside the Gaussian.
It includes what it builds on: MeasurementModel.h (the models and the observations observe() makes of them), MeasurementUpdate.h (what an update returns), MeasurementReads.h and IteratedUpdate.h (how an update reads a measurement and iterates), and Likelihood.h (the logLikelihoods() of sample-based filters). Read SwitchingModel.h, Reduction.h, and Consistency.h next.