#mathematics #simulation #statistics


A crate for simulating random point processes

15 releases (4 breaking)

0.5.1 Aug 1, 2018
0.5.0 Aug 1, 2018
0.4.1 Jul 29, 2018
0.3.1 Jul 13, 2018
0.1.2 Jun 10, 2018

#46 in Algorithms

Download history 55/week @ 2018-06-14 11/week @ 2018-06-21 18/week @ 2018-06-28 59/week @ 2018-07-05 34/week @ 2018-07-12 75/week @ 2018-07-19 3/week @ 2018-07-26 66/week @ 2018-08-02

107 downloads per month

Point processes in Rust

Crates.io Status Docs License

Point processes are stochastic processes with a wide range of applications in seismology, epidemiology, or financial mathematics. They are utilized to model the arrival of random events as a function of time.


This crate provides functions to simulate point processes in Rust, built on top of ndarray.

Time-dependent processes

The following time-dependent point processes have been implemented within the timedependent module:

  • Poisson point process (homogeneous and inhomogeneous, with custom function)
  • Hawkes processes, with an exponential kernel (refer to Dassios and Zhao's 2013 paper (1)) hawkesexp

n-dimensional processes


The generalized module provides functions for higher-dimensional processes.

For now, only Poisson processes have been implemented.

fn poisson_process(lambda: f64, domain: &T)
where T: Set -> ndarray::Array<f64, Ix2> {

fn variable_poisson<F, T>(lambda: F,max_lambda: f64,domain: &T) -> Array2<f64>
where F: Fn(&Array1<f64>) -> f64,
      T: Set

which takes a reference to a domain, that is a subset of n-dimensional space implemented with the Set trait (see API docs), and returns a 2-dimensional array which is a set of point events in d-dimensional space falling into the domain.


Some examples require a yet unpublished version of milliams' plotlib graphing library. To build them, you'll need to checkout plotlib locally:

git clone https://github.com/milliams/plotlib
cargo build --example 2d_poisson

To run the examples, do for instance

cargo run --example variable_poisson

Some will produce SVG image files in the examples directory.

The examples show how to use the API.

MIT license


Reverse deps