# ANN: new version of package for Piecewise Deterministic Markov Processes

**URL:** https://discourse.julialang.org/t/ann-new-version-of-package-for-piecewise-deterministic-markov-processes/29425
**Category:** Package Announcements
**Tags:** announcement, jump
**Created:** [October 2, 2019, 9:38pm UTC](https://discourse.julialang.org/t/ann-new-version-of-package-for-piecewise-deterministic-markov-processes/29425 "2019-10-02T21:38:10Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![rveltz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rveltz/32/2707_2.png) [@rveltz](https://discourse.julialang.org/u/rveltz)
#### Post date: [October 2, 2019, 9:38pm UTC](https://discourse.julialang.org/t/ann-new-version-of-package-for-piecewise-deterministic-markov-processes/29425/1 "2019-10-02T21:38:10Z")

</div>

Hi,

I am happy to announce a new version of the package [PiecewiseDeterministicMarkovProcesses.jl](https://github.com/rveltz/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 a `PDMPProblem` is defined and one simulates the process with `solve(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](https://discourse.julialang.org/t/issue-with-pdmp-and-forwardiff-differentialequation/17925/12) but the algorithm is functional otherwise.

Best,

PSs:

1. 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).
2. 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.
