odin has grown from just one package to a series of
packages; this document aims to help orient you to the right place to
understand how pieces fit together and where to find help.
odin
contains the domain specific language (DSL), and the original
implementation suitable for simple use. It can compile continuous time
(ODE) and discrete time models to C, R or JavaScript. It contains no
ability to do inference.dust
contains an engine for running odin-style models in parallel. It
supports both continuous time and discrete time models, but does not
“know” anything about odin. This is the lower level support that many
users will end up engaging with eventually.odin.dust is
a package for compiling odin models to work with
dust. It will likely merge into odin once
dust is on CRAN.mcstate
is a package for performing inference with odin models
compiled to work with dust. It implements a particle
filter, particle MCMC and other statistical methods.odin: a brief summary of
available functions in odin. This applies to both odin and
odin.dust models, but with the conditions discussed in the
porting guide
odin code: this applies to both
odin and odin.dust modelsodin.dust: shows how to use
odin.dust to explore a stochastic SIR model, without doing
inference on itodin models to odin.dust:
Differences between the original version of odin and the
subset of the DSL supported by odin.dust
The documentation for mcstate concerns mostly performing
inference with odin.dust models
pomp
users, comparison
of our particle filter with a Kalman filter.The documentation for dust is typically
more advanced, but will be useful at times for users of
odin.dust models
dust: discusses what
dust models can do, and how they try to help you.dust model
(which you are unlikely to want to do) but also covers what
dust models can do, by example.dust RNG in other packages and generating
random numbers in highly-parallel situations.Missing topics:
odin.dust
mcstate
Each package also comes with reference documentation, which contains examples and detailed help for individual functions.
In addition to the above, we are growing our ability to work with
JavaScript models - the main output of this is wodin, an interface for
running odin models on the web, which you can see at epimodels.dide.ic.ac.uk.
wodin:
wodin itselfdopri-js: an
ODE solver in TypeScript allowing smooth interpolation of its
solutionsdfoptim:
derivative-free optimisation methods for TypeScriptodin-js:
TypeScript support for running continuous time odin
modelsdust-js: An
implementation of part of the dust interface in
TypeScriptrandom-js:
Another random number library for JavaScriptodin.dust into
odin (once dust is on CRAN)odin.dust
mcstate to make the
inference part of the system nicer to work with; this will include an
overhaul of the nested models.