Safe Haskell | None |
---|---|

Language | Haskell2010 |

Some system models are best handled by injecting some measurements into the process model. These measurements are not truly part of the filter state, and so shouldn't appear in the state vector. However, when the process model runs, the state needs to be augmented with these measurements, and the process uncertainty needs to be augmented with their noise covariance.

As currently implemented, this only works for process models where the
`Filter`

type is a `GaussianFilter`

instance. Generalizing this
interface would be useful future work.

- data AugmentState state extra a = AugmentState {}
- augmentProcess :: (Num (Var t), Applicative state, Applicative extra, Process t, GaussianFilter (Filter t), State t ~ AugmentState state extra) => t -> extra (Var t) -> state (state (Var t)) -> extra (extra (Var t)) -> Filter t state (Var t) -> Filter t state (Var t)

# Documentation

data AugmentState state extra a Source #

Holder for the basic state vector plus the augmented extra state.

(Applicative state, Applicative extra) => Functor (AugmentState state extra) Source # | |

(Applicative state, Applicative extra) => Applicative (AugmentState state extra) Source # | |

(Applicative state, Applicative extra, Traversable state, Traversable extra) => Foldable (AugmentState state extra) Source # | |

(Applicative state, Applicative extra, Traversable state, Traversable extra) => Traversable (AugmentState state extra) Source # | |

(Applicative state, Applicative extra, Distributive state, Distributive extra) => Distributive (AugmentState state extra) Source # | |

(Applicative state, Applicative extra) => Additive (AugmentState state extra) Source # | |

:: (Num (Var t), Applicative state, Applicative extra, Process t, GaussianFilter (Filter t), State t ~ AugmentState state extra) | |

=> t | base process model |

-> extra (Var t) | extra state |

-> state (state (Var t)) | base process uncertainty |

-> extra (extra (Var t)) | extra process uncertainty |

-> Filter t state (Var t) | prior (unaugmented) state |

-> Filter t state (Var t) | posterior (unaugmented) state |

Run an augmented process model with the given extra data.