EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Emrys::GridGaussian< Grid_, Covariance_, Component_ > Class Template Reference

The density of a Rao-Blackwellized point-mass filter's state, a checked view of its GridGaussianParams (decisions.md [params-and-density], [view-stamp]): \( p(x) = \sum_c P(c) \, \delta(x_p - p_c) \, \mathcal{N}(x_r; \mu_c, \Sigma_c) \) over the live cells, or the hybrid of Gaussians in each cell. More...

#include <EmrysFilter/Distributions/GridGaussian.h>

Public Types

using ParamsType = GridGaussianParams<Grid_, Covariance_, Component_>
 the parameters it reads
using GridType = Grid_
 the grid
using Scalar = typename Grid_::Scalar
 the scalar type
using SpaceType = typename Grid_::SpaceType
 the whole state space
using ConditionalType = typename ParamsType::ConditionalType
 a cell's distribution over the rest
using MomentsType = Moments<SpaceType, Scalar>
 a mean and covariance of the whole state
using allocator_type = typename ParamsType::allocator_type
 the parameters' allocator

Public Member Functions

Grid_ const & grid () const
Eigen::Index size () const
decltype(auto) conditional (Eigen::Index i) const
GaussianParams< SpaceType, Scalar > collapsed () const
MomentsType moments () const

Static Public Attributes

static constexpr bool IsParams = false
 a view: it checks its parameters

Detailed Description

template<typename Grid_, typename Covariance_, typename Component_>
class Emrys::GridGaussian< Grid_, Covariance_, Component_ >

The density of a Rao-Blackwellized point-mass filter's state, a checked view of its GridGaussianParams (decisions.md [params-and-density], [view-stamp]): \( p(x) = \sum_c P(c) \, \delta(x_p - p_c) \, \mathcal{N}(x_r; \mu_c, \Sigma_c) \) over the live cells, or the hybrid of Gaussians in each cell.

GridGaussianParams::toDensity() makes one after factorizing each cell's Gaussian, or checking each cell's hybrid, so the moments and the collapse below read a distribution.

auto const density = filter.state().toDensity();
density->collapsed(); // the whole state as one GaussianParams
density->moments(); // its mean and covariance
See also
class GridGaussianParams, RbPointMassFilter

Member Function Documentation

◆ collapsed()

template<typename Grid_, typename Covariance_, typename Component_>
GaussianParams< SpaceType, Scalar > Emrys::GridGaussian< Grid_, Covariance_, Component_ >::collapsed ( ) const
inlinenodiscard
Returns
the whole state as one Gaussian, moment-matched over the live cells: the centers' spread and each cell's covariance about its center for the fixed block, and the cells' Gaussians, or each cell's hybrid collapsed over its modes, for the rest

◆ conditional()

template<typename Grid_, typename Covariance_, typename Component_>
decltype(auto) Emrys::GridGaussian< Grid_, Covariance_, Component_ >::conditional ( Eigen::Index i) const
inlinenodiscard
Returns
the distribution over the rest of the state given the live cell at position i

◆ grid()

template<typename Grid_, typename Covariance_, typename Component_>
Grid_ const & Emrys::GridGaussian< Grid_, Covariance_, Component_ >::grid ( ) const
inlinenodiscard
Returns
the grid, with its cells and centers

◆ moments()

template<typename Grid_, typename Covariance_, typename Component_>
MomentsType Emrys::GridGaussian< Grid_, Covariance_, Component_ >::moments ( ) const
inlinenodiscard
Returns
the mean and covariance of the whole state, those of collapsed()

◆ size()

template<typename Grid_, typename Covariance_, typename Component_>
Eigen::Index Emrys::GridGaussian< Grid_, Covariance_, Component_ >::size ( ) const
inlinenodiscard
Returns
the number of live cells

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