EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
Emrys::GaussianMixturePredictedJoint< Space_, Scalar_, Allocator_ > Struct Template Reference

One prediction of a mixture of Gaussians as its smoother needs it: the weights the step started from, each component's prediction as a PredictedJoint, and how the components descend from those of the record before. More...

#include <EmrysFilter/Filters/MixtureFilter.h>

Public Types

using Scalar = Scalar_
 the scalar type
using SpaceType = Space_
 the state space
using JointType = PredictedJoint<Space_, Scalar_>
 one component's joint
using JointsType = internal::Buffer<JointType, Allocator_>
 the components' joints
using LogWeightsType = internal::Buffer<Scalar_, Allocator_>
 the components' log-weights
using LineageType = MixtureLineage<Scalar_, Allocator_>
 the components' descent

Public Attributes

LogWeightsType logWeights
 each component's log-weight before the step, as the state had it
JointsType joints
 one per component, in the state's order
LineageType lineage
 how the components descend from those of the previous record

Detailed Description

template<Space Space_, RealScalar Scalar_ = double, typename Allocator_ = DefaultAllocator>
struct Emrys::GaussianMixturePredictedJoint< Space_, Scalar_, Allocator_ >

One prediction of a mixture of Gaussians as its smoother needs it: the weights the step started from, each component's prediction as a PredictedJoint, and how the components descend from those of the record before.

MixtureFilter::predictJoint() fills it before predicting, and a GaussianMixtureHistory records it (decisions.md [smoothing]). joints[n] is component n's step, so its filtered is the component before the step. lineage is the state's lineage at that moment: component n's share from each component the state had at the previous predictJoint(), through every update and reduction between the two (see MixtureLineage).

The weights, joints, and lineage come from Allocator_. Passing the same joint to each MixtureFilter::predictJoint(dt, joint, inputs...) reuses their storage.

Template Parameters
Space_the state space
Scalar_scalar type, double by default
Allocator_allocator for the weights, joints, and lineage (see Allocation)

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