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

The emission model of a count of events over an interval, from a Poisson process whose rate is a function of the value. More...

#include <EmrysFilter/Models/Emission.h>

Inheritance diagram for Emrys::PoissonEmission< Space, Scalar_ >:

Public Types

using Scalar = Scalar_
 the scalar type of the rates

Public Member Functions

template<typename Derived, std::integral Count>
requires (!std::same_as<Count, bool>)
 PoissonEmission (Eigen::DenseBase< Derived > const &rates, Count count, TimeStep< Scalar_ > auto const &dt)
 The emission of count events over an interval of dt, any TimeStep (see Time steps), with rates one per value.
Eigen::Index count () const
Scalar_ interval () const
void logLikelihoods (Space const &space, EmissionBuffer< Space, Scalar > out) const
 Writes the Poisson log-probability of the count under each value's rate into out.

Detailed Description

template<DiscreteSpace Space, RealScalar Scalar_ = double>
class Emrys::PoissonEmission< Space, Scalar_ >

The emission model of a count of events over an interval, from a Poisson process whose rate is a function of the value.

A count \( n \) over an interval \( \Delta t \) is Poisson with mean \( \lambda_v \Delta t \), so \( \log p(n \mid v) = n \log(\lambda_v \Delta t) - \lambda_v \Delta t - \log n! \). It treats the value as fixed over the interval. A ContinuousTimeMarkovChain may jump inside it, so for a Markov-modulated Poisson process this is the approximation for intervals short beside the chain's holding times; ArrivalInterval observes one exactly.

Template Parameters
Spacethe discrete space
Scalar_scalar type of the rates, double by default

Constructor & Destructor Documentation

◆ PoissonEmission()

template<DiscreteSpace Space, RealScalar Scalar_ = double>
template<typename Derived, std::integral Count>
requires (!std::same_as<Count, bool>)
Emrys::PoissonEmission< Space, Scalar_ >::PoissonEmission ( Eigen::DenseBase< Derived > const & rates,
Count count,
TimeStep< Scalar_ > auto const & dt )
inline

The emission of count events over an interval of dt, any TimeStep (see Time steps), with rates one per value.

count is an integer, so a step and a count given in each other's place do not compile, where a step converted to a count would have been truncated.

Member Function Documentation

◆ count()

template<DiscreteSpace Space, RealScalar Scalar_ = double>
Eigen::Index Emrys::PoissonEmission< Space, Scalar_ >::count ( ) const
inlinenodiscard
Returns
the number of events

◆ interval()

template<DiscreteSpace Space, RealScalar Scalar_ = double>
Scalar_ Emrys::PoissonEmission< Space, Scalar_ >::interval ( ) const
inlinenodiscard
Returns
the length of the interval, in the unit of the rates (see Time steps)

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