pub mod traits;
pub mod poisson;
pub mod cox;
pub mod hawkes;
pub mod utils;
pub use traits::*;
pub use poisson::*;
pub use utils::simulate_brownian;
use ndarray::prelude::*;
pub fn poisson_process(tmax: f64, lambda: f64) -> Array1<f64>
{
let process = PoissonProcess::new(lambda);
process.sample(tmax).timestamps
}
pub fn variable_poisson<F>(tmax: f64, lambda: &F, max_lambda: f64) -> TimeProcessResult
where F: Fn(f64) -> f64 + Send + Sync
{
let model = VariablePoissonProcess::new(lambda, max_lambda);
let result = model.sample(tmax);
result
}
pub fn hawkes_exponential(tmax: f64, alpha: f64, beta: f64, lambda0: f64) -> TimeProcessResult
{
use hawkes::ExpHawkes;
let model: ExpHawkes = ExpHawkes::new(alpha, beta, lambda0);
model.sample(tmax)
}