All Projects → ManifoldFR → point-process-rust

ManifoldFR / point-process-rust

Licence: MIT license
Simulation of point processes in the Rust programming language

Programming Languages

rust
11053 projects
python
139335 projects - #7 most used programming language
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to point-process-rust

gammy
🐙 Generalized additive models in Python with a Bayesian twist
Stars: ✭ 65 (+103.13%)
Mutual labels:  mathematical-modelling
EpiModelHIV
Network Models of HIV Transmission Dynamics among MSM and Heterosexuals
Stars: ✭ 20 (-37.5%)
Mutual labels:  mathematical-modelling
kendrick
Domain-Specific Modeling for Epidemiology
Stars: ✭ 43 (+34.38%)
Mutual labels:  mathematical-modelling
human-memory
Course materials for Dartmouth course: Human Memory (PSYC 51.09)
Stars: ✭ 239 (+646.88%)
Mutual labels:  mathematical-modelling
DiffOpt.jl
Differentiating convex optimization programs w.r.t. program parameters
Stars: ✭ 106 (+231.25%)
Mutual labels:  mathematical-modelling
point-process-nets
Point processes backed by neural net intensity models
Stars: ✭ 39 (+21.88%)
Mutual labels:  mathematical-modelling
Mathematical-Modeling
A sharing of the learning process of mathematical modeling 数学建模常用工具模型算法分享:数学建模竞赛优秀论文,数学建模常用算法模型,LaTeX论文模板,SPSS工具分享。
Stars: ✭ 30 (-6.25%)
Mutual labels:  mathematical-modelling
RS-MET
Codebase for RS-MET products (Robin Schmidt's Music Engineering Tools)
Stars: ✭ 32 (+0%)
Mutual labels:  mathematical-modelling
autodiff
A .NET library that provides fast, accurate and automatic differentiation (computes derivative / gradient) of mathematical functions.
Stars: ✭ 69 (+115.63%)
Mutual labels:  mathematical-modelling
SimInf
A framework for data-driven stochastic disease spread simulations
Stars: ✭ 21 (-34.37%)
Mutual labels:  mathematical-modelling
pomp
R package for statistical inference using partially observed Markov processes
Stars: ✭ 88 (+175%)
Mutual labels:  mathematical-modelling

Point processes in Rust

Crates.io Status Docs License Build Status

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.

variablepoisson

This crate provides functions to simulate point processes in Rust, built on top of ndarray. There is a Rust API available through the base crate as well as a Python library crate.

Overview

Time-dependent processes

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

  • Poisson point process (homogeneous and inhomogeneous, with custom function)
  • Exponential-kernel Hawkes processes, using a linear-time simulation algorithm (both constant and variable background intensities supported)

cos_bg_exphawkes

Spatial processes

2dpoisson_circle

The generalized module provides functions for higher-dimensional processes.

For now, only Poisson processes have been implemented.

Estimators

The estimators module provides estimator routines for point process statistics such as the intensity.

polyexp_poisson_estimation

Python package

An Python wrapper crate is available in the pylib directory.

Examples

Run the examples with for instance

cd lib/
cargo run --example variable_poisson

Some will produce SVG image files in the lib/examples directory.

The examples show how to use the API.

They require the plotters crate for plotting.

Building locally

To compile the Rust library, do

cd lib/
cargo build

To build the Python library,

cd pylib/
cargo build --release

Warning on macOS, you might need to add the following to ~/.cargo/config (see PyO3's README):

[target.x86_64-apple-darwin]
rustflags = [
  "-C", "link-arg=-undefined",
  "-C", "link-arg=dynamic_lookup",
]

or linking with the C compiler will fail.

To compile both crates at the same time, just do

cargo build
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].