EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Emrys::DensityEmission< Observation, DistributionOf > Class Template Reference

The emission model of an observation drawn from a distribution chosen by the value: the log-density of the observation under the value's distribution. More...

#include <EmrysFilter/Models/Emission.h>

Public Types

using Scalar
 The scalar type of the log-densities.

Public Member Functions

 DensityEmission (Observation observation, DistributionOf distributionOf)
 The emission of observation, under the distribution distributionOf returns for each value.
Observation const & observation () const
template<DiscreteSpace Space>
void logLikelihoods (Space const &space, EmissionBuffer< Space, Scalar > out) const
 Writes the observation's log-density under each value's distribution into out.

Detailed Description

template<typename Observation, typename DistributionOf>
class Emrys::DensityEmission< Observation, DistributionOf >

The emission model of an observation drawn from a distribution chosen by the value: the log-density of the observation under the value's distribution.

distributionOf maps a value's flat index to a distribution with logDensity() of the observation, such as a Gaussian per value for a hidden Markov model with continuous observations. It may return a reference into the caller's own list of distributions or build one on the spot.

auto const densities = std::array{rainy.toDensity().value(), dry.toDensity().value()};
filter.update(DensityEmission{z, [&](Eigen::Index v) -> auto const & { return densities[v]; }});
The emission model of an observation drawn from a distribution chosen by the value: the log-density o...
Definition Emission.h:276
Template Parameters
Observationthe observation's type
DistributionOfthe callable from a value's flat index to its distribution

Member Typedef Documentation

◆ Scalar

template<typename Observation, typename DistributionOf>
using Emrys::DensityEmission< Observation, DistributionOf >::Scalar
Initial value:
std::remove_cvref_t<decltype(std::declval<DistributionOf const &>()(Eigen::Index{})
.logDensity(std::declval<Observation const &>()))>

The scalar type of the log-densities.

Member Function Documentation

◆ observation()

template<typename Observation, typename DistributionOf>
Observation const & Emrys::DensityEmission< Observation, DistributionOf >::observation ( ) const
inlinenodiscard
Returns
the observation

The documentation for this class was generated from the following file: