|
EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
|
| Core | The first layer (decisions.md [layered-headers]): what the rest of the library builds on and what depends on nothing but Eigen |
| Allocation | Storage sized by a space never touches the heap when the space is fixed or bounded (see Spaces), and an unbounded space allocates through Eigen's ordinary heap path |
| Execution policies | Where loops run (decisions.md [execution-policies]) |
| Resamplers | A resampler is a function object called as r(weights, ancestors, rng) |
| Time steps | What a step of time may be (decisions.md [time-steps]) |
| Distributions | The third layer (decisions.md [layered-headers]): the distributions, each stored as parameters and evaluated through a density, and what is computed from them |
| Divergences | How far apart two distributions are |
| Upkeep | Upkeep keeps a filter's representation in bounds without meaning to change the distribution much: resampling particles whose weights have degenerated, roughening them after, pruning the improbable particles, components, or cells, or repairing a covariance that rounding has left not positive definite |
| Filters | The fifth layer (decisions.md [layered-headers]): a filter owns its process model and a state, predicts with predict(dt, inputs...), and updates with update(measurement) [filters-and-recursions] |
| Upkeep | Upkeep keeps a filter's representation in bounds without meaning to change the distribution much: resampling particles whose weights have degenerated, roughening them after, pruning the improbable particles, components, or cells, or repairing a covariance that rounding has left not positive definite |
| Models | The fourth layer (decisions.md [layered-headers]): how a distribution moves through a function and what a filter is given to work with |
| Transforms | Transform() pushes independent uncertain inputs through a function \( y = f(x) \boxplus v \) and returns the distribution of \( y \) as a Gaussian (decisions.md [transform-policies]) |
| Smoothers | The last layer (decisions.md [layered-headers]): estimates of past states from later data [smoothing] |
| Spaces | The second layer (decisions.md [layered-headers]): where values live |
| Discrete spaces | A discrete space is a finite set of values, such as a maneuver regime, a sensor's inlier/outlier state, or the cells of a grid |