pub struct ParticleFilter<'a> {
pub cfg: ParticleConfig,
pub q_chol: Vec<f64>,
pub r: Vec<f64>,
pub f: Box<dyn Fn(&[f64]) -> Vec<f64> + 'a>,
pub h: Box<dyn Fn(&[f64]) -> Vec<f64> + 'a>,
pub x0: Vec<f64>,
pub p0_chol: Vec<f64>,
}Expand description
Particle filter (SIR) for nonlinear non-Gaussian state-space models.
State model: x_t = f(x_{t-1}) + noise, noise ~ N(0, Q) Obs model: z_t = h(x_t) + v_t, v_t ~ N(0, R)
Fields§
§cfg: ParticleConfigFilter configuration.
q_chol: Vec<f64>Cholesky factor L_Q (dim_x × dim_x lower triangular) of Q = L_Q L_Q^T.
r: Vec<f64>Observation noise covariance R (dim_z × dim_z, row-major).
f: Box<dyn Fn(&[f64]) -> Vec<f64> + 'a>Deterministic part of state transition: x_t = f(x_{t-1}) + noise.
h: Box<dyn Fn(&[f64]) -> Vec<f64> + 'a>Observation model: z_t = h(x_t).
x0: Vec<f64>Initial state distribution mean (length dim_x).
p0_chol: Vec<f64>Cholesky of initial covariance P_0 (lower triangular, dim_x × dim_x).
Implementations§
Source§impl<'a> ParticleFilter<'a>
impl<'a> ParticleFilter<'a>
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for ParticleFilter<'a>
impl<'a> !Send for ParticleFilter<'a>
impl<'a> !Sync for ParticleFilter<'a>
impl<'a> !UnwindSafe for ParticleFilter<'a>
impl<'a> Freeze for ParticleFilter<'a>
impl<'a> Unpin for ParticleFilter<'a>
impl<'a> UnsafeUnpin for ParticleFilter<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more