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

Smoothing a HiddenMarkovFilter [emissions]: CategoricalHistory, the record of its forward pass, whose smooth() runs the backward pass over it, fixed-interval or fixed-lag; its smoothStep() and transitionPosterior(); and mostProbableSequence(), the Viterbi path over the same record, with the ValueSequence it returns (decisions.md [smoothing]). More...

#include <cstddef>
#include <iterator>
#include <list>
#include <optional>
#include <utility>
#include <EmrysFilter/Core/Allocation.h>
#include <EmrysFilter/Core/Macros.h>
#include <EmrysFilter/Core/Math.h>
#include <EmrysFilter/Core/Multiply.h>
#include <EmrysFilter/Core/Weights.h>
#include <EmrysFilter/Distributions/Categorical.h>
#include <EmrysFilter/Filters/HiddenMarkovFilter.h>
#include <EmrysFilter/Smoothers/Lag.h>
#include <EmrysFilter/Spaces/Discrete.h>
#include <EmrysFilter/Spaces/Space.h>

Go to the source code of this file.

Classes

class  Emrys::CategoricalHistory< Space_, Scalar_, Allocator_ >
 The record of a HiddenMarkovFilter's forward pass that a smoother runs backward over: one CategoricalPredictedJoint per prediction, each with room for its smoothed distribution. More...
struct  Emrys::CategoricalHistory< Space_, Scalar_, Allocator_ >::Step
 One recorded prediction and its smoothed distribution. More...
struct  Emrys::ValueSequence< Space, Scalar, Allocator >
 The most probable sequence of values over a CategoricalHistory, and its posterior probability, from mostProbableSequence(). More...

Functions

template<typename Space, typename Scalar>
CategoricalParams< Space, Scalar > Emrys::smoothStep (CategoricalPredictedJoint< Space, Scalar > const &joint, CategoricalParams< Space, Scalar > const &smoothedNext)
template<typename Space, typename Scalar>
CategoricalPredictedJoint< Space, Scalar >::MatrixType Emrys::transitionPosterior (CategoricalPredictedJoint< Space, Scalar > const &joint, CategoricalParams< Space, Scalar > const &smoothedNext)
template<typename Space, typename Scalar, typename Allocator>
ValueSequence< Space, Scalar, Allocator > Emrys::mostProbableSequence (CategoricalHistory< Space, Scalar, Allocator > const &history, CategoricalParams< Space, Scalar > const &latest)

Detailed Description

Smoothing a HiddenMarkovFilter [emissions]: CategoricalHistory, the record of its forward pass, whose smooth() runs the backward pass over it, fixed-interval or fixed-lag; its smoothStep() and transitionPosterior(); and mostProbableSequence(), the Viterbi path over the same record, with the ValueSequence it returns (decisions.md [smoothing]).

The filter is unchanged but for predictJoint() (see CategoricalPredictedJoint in HiddenMarkovFilter.h). Read HiddenMarkovFilter.h first; the design review is docs/guide/smoothing.md.