cartan

Stratonovich Development

Stochastic development (Eells-Elworthy-Malliavin) constructs Brownian motion on a Riemannian manifold by driving its orthonormal frame bundle with Euclidean Brownian motion. The projection to is a diffusion with the Laplace-Beltrami generator .

The SDE

On the frame bundle , the Stratonovich SDE is

where is the horizontal lift of the -th frame vector and the driving is standard Brownian motion. The base-point projection is Brownian motion on .

Integrator

One Stratonovich-Euler step:

  1. Form horizontal velocity .
  2. Advance the base point: .
  3. Parallel-transport the frame: , then Gram-Schmidt re-orthonormalise.

Because the frame-coordinate drift is zero, no Stratonovich correction term is needed — the discretisation error is purely in the base-point projection.

API

use cartan_stochastic::{random_frame_at, stochastic_development};
 
let frame = random_frame_at(&m, &p0, &mut rng)?;
let result = stochastic_development(
    &m, &p0, frame,
    /* n_steps = */ 200,
    /* dt     = */ 0.001,
    &mut rng,
    /* gram-schmidt tol = */ 1e-10,
)?;
// result.path: Vec<M::Point> of length n_steps + 1
// result.final_frame: the terminal orthonormal frame

Trait requirements on : any manifold implementing Manifold + Retraction + VectorTransport gets this machinery via the blanket StratonovichDevelopment marker trait. Tested against the sphere heat kernel and Bures-Wasserstein SPD.

Empirical validation

For Brownian motion on starting at the north pole, the zonal harmonic gives a closed-form expectation

cartan-stochastic matches this to Monte Carlo precision at 400 paths:

Horizon Closed formEmpirical (N=400)
within

Performance

Per-step cost on the native Rust path (median, warmup-amortised, f64):

ManifoldDimhorizontal_velocitystratonovich_step
Sphere 220 ns190 ns
Sphere 520 ns501 ns
Sphere 1020 ns1.66 µs
Sphere 2560 ns9.45 µs
Sphere 50250 ns41.2 µs
SPD(2)24.11 µs
SPD(3)324.9 µs
SPD(5)5202 µs

The horizontal-lift primitive is essentially free below ; the step cost is dominated by the parallel-transport and Gram-Schmidt reorthonormalisation at the end of each step.