#[macro_export]
macro_rules! langevin {
(dx = $drift:ident(x, t)dt + $diffusion: ident(x, t)dB(t), x(0)=$x0:expr) => {{
use diffusionx::simulation::continuous::Langevin;
let equation = Langevin::new($drift, $diffusion, $x0);
equation
}};
}
#[macro_export]
macro_rules! generalized_langevin {
(dx = $drift:ident(x, t)dt + $diffusion: ident(x, t)dL(t), x(0)=$x0:expr, alpha = $alpha:expr) => {{
use diffusionx::simulation::continuous::GeneralizedLangevin;
let equation = GeneralizedLangevin::new($drift, $diffusion, $x0, $alpha);
equation
}};
}
#[macro_export]
macro_rules! subordinated_langevin {
(dx = $drift:ident(x, t) dS(t) + $diffusion: ident(x, t) dB(S(t)), x(0)=$x0:expr, alpha = $alpha:expr) => {{
use diffusionx::simulation::continuous::SubordinatedLangevin;
let equation = SubordinatedLangevin::new($drift, $diffusion, $x0, $alpha);
equation
}};
}