[][src]Struct adskalman::KalmanFilterNoControl

pub struct KalmanFilterNoControl<'a, R, SS, OS> where
    R: RealField,
    SS: DimName,
    OS: DimName
{ /* fields omitted */ }

A Kalman filter with no control inputs, a linear process model and linear observation model

Implementations

impl<'a, R, SS, OS> KalmanFilterNoControl<'a, R, SS, OS> where
    R: RealField,
    SS: DimName,
    OS: DimName + DimMin<OS, Output = OS>,
    DefaultAllocator: Allocator<R, SS, SS>,
    DefaultAllocator: Allocator<R, SS>,
    DefaultAllocator: Allocator<R, OS, SS>,
    DefaultAllocator: Allocator<R, SS, OS>,
    DefaultAllocator: Allocator<R, OS, OS>,
    DefaultAllocator: Allocator<R, OS>,
    DefaultAllocator: Allocator<(usize, usize), OS>, 
[src]

pub fn new(
    transition_model: &'a dyn TransitionModelLinearNoControl<R, SS>,
    observation_matrix: &'a dyn ObservationModelLinear<R, SS, OS>
) -> Self
[src]

pub fn step(
    &self,
    previous_estimate: &StateAndCovariance<R, SS>,
    observation: &VectorN<R, OS>
) -> Result<StateAndCovariance<R, SS>, Error>
[src]

Perform Kalman prediction and update steps with default values

If any component of the observation is NaN (not a number), the observation will not be used but rather the prior will be returned as the posterior without performing the update step.

This calls the prediction step of the transition model and then, if there is a (non-nan) observation, calls the update step of the observation model using the CoverianceUpdateMethod::OptimalKalmanForcedSymmetric covariance update method.

This is a convenience method calling step_with_options

pub fn step_with_options(
    &self,
    previous_estimate: &StateAndCovariance<R, SS>,
    observation: &VectorN<R, OS>,
    covariance_update_method: CoverianceUpdateMethod
) -> Result<StateAndCovariance<R, SS>, Error>
[src]

Perform Kalman prediction and update steps with default values

If any component of the observation is NaN (not a number), the observation will not be used but rather the prior will be returned as the posterior without performing the update step.

This calls the prediction step of the transition model and then, if there is a (non-nan) observation, calls the update step of the observation model using the specified covariance update method.

pub fn filter_inplace(
    &self,
    initial_estimate: &StateAndCovariance<R, SS>,
    observations: &[VectorN<R, OS>],
    state_estimates: &mut [StateAndCovariance<R, SS>]
) -> Result<(), Error>
[src]

Kalman filter (operates on in-place data without allocating)

Operates on entire time series in one shot and returns a vector of state estimates. To be mathematically correct, the interval between observations must be the dt specified in the motion model.

If any observation has a NaN component, it is treated as missing.

pub fn filter(
    &self,
    initial_estimate: &StateAndCovariance<R, SS>,
    observations: &[VectorN<R, OS>]
) -> Result<Vec<StateAndCovariance<R, SS>>, Error>
[src]

Kalman filter

This is a convenience function that calls filter_inplace.

pub fn smooth(
    &self,
    initial_estimate: &StateAndCovariance<R, SS>,
    observations: &[VectorN<R, OS>]
) -> Result<Vec<StateAndCovariance<R, SS>>, Error>
[src]

Rauch-Tung-Striebel (RTS) smoother

Operates on entire time series in one shot and returns a vector of state estimates. To be mathematically correct, the interval between observations must be the dt specified in the motion model.

If any observation has a NaN component, it is treated as missing.

pub fn smooth_from_filtered(
    &self,
    forward_results: Vec<StateAndCovariance<R, SS>>
) -> Result<Vec<StateAndCovariance<R, SS>>, Error>
[src]

Rauch-Tung-Striebel (RTS) smoother using already Kalman filtered estimates

Operates on entire time series in one shot and returns a vector of state estimates. To be mathematically correct, the interval between observations must be the dt specified in the motion model.

Auto Trait Implementations

impl<'a, R, SS, OS> !RefUnwindSafe for KalmanFilterNoControl<'a, R, SS, OS>

impl<'a, R, SS, OS> !Send for KalmanFilterNoControl<'a, R, SS, OS>

impl<'a, R, SS, OS> !Sync for KalmanFilterNoControl<'a, R, SS, OS>

impl<'a, R, SS, OS> Unpin for KalmanFilterNoControl<'a, R, SS, OS>

impl<'a, R, SS, OS> !UnwindSafe for KalmanFilterNoControl<'a, R, SS, OS>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,