cartan_stochastic/lib.rs
1//! # cartan-stochastic
2//!
3//! Stochastic analysis primitives on Riemannian manifolds.
4//!
5//! This crate provides the foundation that downstream crates (`hsu`, `bismut`,
6//! `elworthy`, `malliavin`) need to do probability, SDE integration, and
7//! pathwise-derivative computation on manifolds — independent of the
8//! underlying manifold type, as long as it implements the `cartan-core`
9//! `Manifold + ParallelTransport + Retraction` trait stack.
10//!
11//! The architectural purpose is to **prevent primitive duplication** across
12//! the Hsu / Bismut / Elworthy / Malliavin stack. Horizontal lift, orthonormal
13//! frame bundle, Stratonovich development, and stochastic-development by
14//! Euler-Maruyama are all defined once here.
15//!
16//! ## Concepts
17//!
18//! **Orthonormal frame bundle `O(M)`**: the total space of orthonormal bases
19//! of the tangent spaces of `M`. A point in `O(M)` is a pair `(p, r)` where
20//! `p ∈ M` and `r = (e_1, …, e_n)` is an orthonormal basis of `T_p M`.
21//!
22//! **Horizontal lift**: given a tangent vector `u ∈ T_p M`, a curve in `O(M)`
23//! whose velocity projects to `u` and whose frame evolves by parallel transport.
24//! Implemented as a right action of `R^n` on the frame bundle via
25//! `(p, r) · ξ = (γ(1), r̃)` where `γ` is the exponential of `Σ ξ_i e_i` and
26//! `r̃` is the parallel transport of `r` along `γ`.
27//!
28//! **Stochastic development (Eells-Elworthy-Malliavin)**: solve the SDE on
29//! `O(M)` driven by Euclidean Brownian motion `W_t`, with Stratonovich
30//! differential `∂_t (p, r) = H_i(p, r) ∘ dW^i_t` where `H_i` is the
31//! horizontal lift of the `i`-th frame vector. The projection to `M` is
32//! Brownian motion on `M` with the Laplace-Beltrami generator.
33//!
34//! ## Minimum trait requirements
35//!
36//! Any manifold implementing `Manifold + ParallelTransport + Retraction` can
37//! host a stochastic development. Exact exponentials are not required;
38//! retraction suffices at the cost of higher-order discretisation error.
39//!
40//! ## References
41//!
42//! - Hsu, Elton P. *Stochastic Analysis on Manifolds.* AMS, 2002. Chapter 2
43//! (horizontal lift and anti-development), Chapter 3 (Brownian motion
44//! via orthonormal frame bundle).
45//! - Eells, J. and Elworthy, K. D. *Wiener integration on certain manifolds.*
46//! Problems in Non-Linear Analysis, 1971.
47//! - Elworthy, K. D. *Stochastic Differential Equations on Manifolds.*
48//! Cambridge LMS Lecture Notes 70, 1982.
49
50#![deny(missing_docs)]
51
52pub mod development;
53pub mod error;
54pub mod frame;
55pub mod horizontal;
56pub mod sde;
57pub mod wishart;
58
59pub use development::{stochastic_development, DevelopmentPath};
60pub use error::StochasticError;
61pub use frame::{random_frame_at, OrthonormalFrame};
62pub use horizontal::horizontal_velocity;
63pub use sde::{stratonovich_step, StratonovichDevelopment};
64pub use wishart::wishart_step;