Requirements for a motion model to be used in a Beluga ParticleFilter.
A type T satisfies the MotionModel requirements if the following is satisfied:
T::state_type is a valid type, representing a particle state.T::control_type is a valid type, representing a control action to condition the motion model.Given:
cp of T.u of T::control_type (or convertible type U).Then:
cp(u) returns a callable satisfying Beluga named requirements: StateSamplingFunction for T::state_type.Requirements for a callable to sample a motion distribution when propagating particle states in a Beluga ParticleFilter.
A type F satisfies the StateSamplingFunction requirements for some state type S if:
Given:
fn of F.s of S.e satisfying URNG requirements.Then:
fn(s, e) returns another sampled state ss of S.