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) | |
(Applicative state, Applicative extra) => Applicative (AugmentState state extra) | |
(Applicative state, Applicative extra, Traversable state, Traversable extra) => Foldable (AugmentState state extra) | |
(Applicative state, Applicative extra, Traversable state, Traversable extra) => Traversable (AugmentState state extra) | |
(Applicative state, Applicative extra, Distributive state, Distributive extra) => Distributive (AugmentState state extra) | |
(Applicative state, Applicative extra) => Additive (AugmentState state extra) |
:: (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.