What an IMM filter's update did: each mode's update before reduction, the observation's log-likelihood over every mode, and whether any mode accepted the measurement.
More...
template<typename ModeUpdate, typename Scalar_ = double, typename Allocator = DefaultAllocator>
struct Emrys::ImmFilterUpdate< ModeUpdate, Scalar_, Allocator >
What an IMM filter's update did: each mode's update before reduction, the observation's log-likelihood over every mode, and whether any mode accepted the measurement.
modes[m] is the update of mode m's component (see FilterUpdate), with its log-likelihood \( \log p(z \mid m) \) and its branches labeled with mode = m. Its accepted is false when the policy, such as a Gate, rejected the measurement in that mode. When accepted is false here, every mode rejected it and the state kept its prior.
The modes' updates come from Allocator. Passing the same result, made from the allocator, to each ImmFilter::update(measurement, policy, result) reuses their storage, and a mode's update of mixture noise (a ReusableFilterUpdate) keeps its scratch, so an update allocates nothing once the result has been as large (see Allocation).
- Template Parameters
-