Hi,
I am happy to announce a new version of the package PiecewiseDeterministicMarkovProcesses.jl to simulate ODE with stochastic jumps.
A lot of effort has been put to remove unncessary allocations, to make it fast and precise (in term of sampling of the process). It builds upon the fantastic DifferentialEquations
.
In this version, the following has been done
- a new interface closer to the organisation
JuliaDiffEq
where aPDMPProblem
is defined and one simulates the process withsolve(prob, algo)
. This new interface still remains efficient by avoiding unnecessary allocations. Hence, when simulating a process without saving the result except the last jump, the allocation is independent of the requested jump number. - a wrapper (still WIP) to
DiffEqJump.jl
so that user can tap in our algorithms for the simulation of their jump processes - the package is heavily tested against analytical solutions to test the precision of the algo and the absence of bug (if only…), to track allocations… in a variety of configurations.
For one of the algorithms (e.g. the CHV
), autodiff does not work as mentioned in this discourse post but the algorithm is functional otherwise.
Best,
PSs:
- Compared to
DiffEqJump.jl
, this is a bit of a niche because we don’t consider SDE + jumps and this justifies the need for a specific package (at least for now). - I found it non trivial to design a structure to wrap a closure in an iterator which does not allocate. I did it by trial and errors while checking the allocations.