pathwise_core/scheme/
mod.rs1use crate::state::{Diffusion, Increment, NoiseIncrement, State};
2use crate::process::markov::Drift;
3
4pub trait Scheme<S: State>: Send + Sync {
9 type Noise: NoiseIncrement;
10
11 fn step<D, G>(
12 &self,
13 drift: &D,
14 diffusion: &G,
15 x: &S,
16 t: f64,
17 dt: f64,
18 inc: &Increment<Self::Noise>,
19 ) -> S
20 where
21 D: Drift<S>,
22 G: Diffusion<S, Self::Noise>;
23}
24
25pub mod euler;
26pub mod milstein;
27pub mod milstein_nd;
28pub mod sri;
29pub use euler::{euler, EulerMaruyama};
30pub use milstein::{milstein, Milstein};
31pub use milstein_nd::{milstein_nd, MilsteinNd};
32pub use sri::{sri, Sri};