Refactoring of Markov processes and Kalman filters #627
Labels
filtsmooth
Issues related to filtering and smoothing
refactoring
Refactoring of existing functionality
Describe the issue
The current implementation of Markov processes and Kalman filters is agnostic of two rather important concepts:
The implementations are tied to a single
MarkovProcess
andKalman
class. The distinctions between the above settings are made by passing corresponding transitions and/or linearisation-wrappers to theMarkovProcess
or theKalman
class.This works fine, but has two major issues:
t
anddt
in discrete transitions and discrete Kalman filters, and removing them wherever applicable will make the code much more readable.Additional context
@schmidtjonathan did I miss anything?
Tasks
This will touch a lot of code in
filtsmooth
andrandprocs.markov
, so below I will try to compile a set of micro-PR-type tasks. I will edit freely as soon as I can come up with more. The tasks are not ordered.MarkovSequence
type class as a discrete counterpart to aMarkovProcess
. This can then be passed to discrete filtersEKFComponents
,UKFComponents
, etc.. Make the latter private._EKFComponents
,_UKFComponents
, etc., with pure functionslinearise_ek/uk
that turn a nonlinear model into a linear model.DiscreteTransition
s fromTransition
. Rename the latter toSDETransition
?forward_*
,backward_*
, etc. from the SDE models and perhaps handle everything viaSDEModel.discretise() -> DiscreteTransition
.?The text was updated successfully, but these errors were encountered: