EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Emrys::EmissionModel Concept Reference

A measurement of a value in the discrete space Space: one log-likelihood per value. More...

#include <EmrysFilter/Models/Emission.h>

Concept definition

template<typename E, typename Space>
concept EmissionModel =
&& requires(E const & emission, Space const & space, EmissionBuffer<Space, typename E::Scalar> out) {
emission.logLikelihoods(space, out);
}
A type usable as a discrete space: a finite set of values.
Definition Discrete.h:72
A measurement of a value in the discrete space Space: one log-likelihood per value.
Definition Emission.h:50
A type usable as the scalar of a distribution: a real number type such as float, double,...
Definition Math.h:80
A type usable as the space of a distribution.
Definition Space.h:186
Eigen::Ref< Eigen::Array< Scalar, Space::Cardinality, 1 > > EmissionBuffer
The buffer an emission model writes its log-likelihoods into: one coefficient per value of the discre...
Definition Emission.h:37

Detailed Description

A measurement of a value in the discrete space Space: one log-likelihood per value.

An emission model has a Scalar and a logLikelihoods(space, out) that writes \( \log p(z \mid v) \) into out(v) for every value \( v \) of space, sized by its cardinality, given the measurement \( z \) it captures, as a continuous measurement captures its observation [sensors]. out is an EmissionBuffer, fixed in size where the space's cardinality is. The buffer is the caller's, so a bounded space allocates nothing [allocation]. update() applies one to a CategoricalParams.