Skip to main content

pathwise_core/scheme/
mod.rs

1use crate::state::{Diffusion, Increment, NoiseIncrement, State};
2use crate::process::markov::Drift;
3
4/// One-step advance of an SDE of type S.
5///
6/// The `type Noise` associated type fixes the noise increment type for this scheme.
7/// For all current schemes on scalar or nD-diagonal processes, `Noise = S`.
8pub 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};