EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
Loading...
Searching...
No Matches
MixtureFilter.h File Reference

MixtureFilter (decisions.md [mixture-filter], [filters-and-recursions]): a Mixture state whose components are each predicted and updated by the recursion their type names, a KalmanRecursion for Gaussians and an ImmRecursion for hybrid states, or by one of the user's own (Recursion.h), and reweighted by their likelihoods, with MixtureFilterUpdate; GaussianMixturePredictedJoint, what predictJoint() records for the mixture smoother [smoothing] in GaussianMixtureHistory.h; and GaussianMixtureFilter, the spelling for the mixture of Gaussians. More...

#include <algorithm>
#include <atomic>
#include <concepts>
#include <cstddef>
#include <expected>
#include <functional>
#include <numeric>
#include <optional>
#include <ranges>
#include <type_traits>
#include <utility>
#include <EmrysFilter/Core/Allocation.h>
#include <EmrysFilter/Core/Execution.h>
#include <EmrysFilter/Core/Macros.h>
#include <EmrysFilter/Core/Math.h>
#include <EmrysFilter/Core/Print.h>
#include <EmrysFilter/Core/Weights.h>
#include <EmrysFilter/Distributions/Component.h>
#include <EmrysFilter/Distributions/Gaussian.h>
#include <EmrysFilter/Distributions/Mixture.h>
#include <EmrysFilter/Filters/FilterUpkeep.h>
#include <EmrysFilter/Filters/ImmFilter.h>
#include <EmrysFilter/Filters/KalmanFilter.h>
#include <EmrysFilter/Filters/Recursion.h>
#include <EmrysFilter/Models/Measurement.h>
#include <EmrysFilter/Models/ProcessModel.h>
#include <EmrysFilter/Models/Reduction.h>
#include <EmrysFilter/Models/Transform.h>
#include <EmrysFilter/Spaces/Composite.h>
#include <EmrysFilter/Spaces/Space.h>

Go to the source code of this file.

Classes

struct  Emrys::MixtureFilterUpdate< ComponentUpdate, Scalar, Allocator >
 What a mixture filter's update did: each prior component's update before reduction, the observation's log-likelihood under the whole mixture, and whether any component accepted the measurement. More...
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. More...
class  Emrys::MixtureFilter< Component_, Model_, Method_, Allocator_, Recursion_, Upkeep_ >
 A mixture filter: a Mixture state, a process model, and the method that predicts through it, each component run by the recursion its type names, or by the one given. More...
class  Emrys::GaussianMixtureFilter< Space_, Model_, Method_, Scalar_, Allocator_, Upkeep_ >
 The MixtureFilter over a GaussianMixtureParams, the spelling for the common case (decisions.md [filters-and-recursions]): each component a KalmanFilter's step, reweighted by its likelihood. More...

Detailed Description

MixtureFilter (decisions.md [mixture-filter], [filters-and-recursions]): a Mixture state whose components are each predicted and updated by the recursion their type names, a KalmanRecursion for Gaussians and an ImmRecursion for hybrid states, or by one of the user's own (Recursion.h), and reweighted by their likelihoods, with MixtureFilterUpdate; GaussianMixturePredictedJoint, what predictJoint() records for the mixture smoother [smoothing] in GaussianMixtureHistory.h; and GaussianMixtureFilter, the spelling for the mixture of Gaussians.

Read ImmFilter.h next.