pointprocesses/temporal/
mod.rs1pub mod traits;
7pub mod poisson;
8pub mod cox;
9pub mod hawkes;
10pub mod utils;
11
12pub use traits::*;
14
15pub use poisson::*;
16pub use utils::simulate_brownian;
17
18use ndarray::prelude::*;
19
20pub fn poisson_process(tmax: f64, lambda: f64) -> Array1<f64>
22{
23 let process = PoissonProcess::new(lambda);
24 process.sample(tmax).timestamps
25}
26
27pub fn variable_poisson<F>(tmax: f64, lambda: &F, max_lambda: f64) -> TimeProcessResult
29where F: Fn(f64) -> f64 + Send + Sync
30{
31 let model = VariablePoissonProcess::new(lambda, max_lambda);
32 let result = model.sample(tmax);
33 result
34}
35
36pub fn hawkes_exponential(tmax: f64, alpha: f64, beta: f64, lambda0: f64) -> TimeProcessResult
38{
39 use hawkes::ExpHawkes;
40 let model: ExpHawkes = ExpHawkes::new(alpha, beta, lambda0);
41 model.sample(tmax)
42}