cartan-stochastic
Stochastic analysis primitives on Riemannian manifolds.
Part of the cartan workspace.
What this crate does
cartan-stochastic provides the foundation downstream stochastic stacks
need to do probability, SDE integration, and pathwise-derivative
computation on manifolds — independent of the manifold type, as long as
it implements cartan-core's Manifold + ParallelTransport + Retraction.
The architectural purpose is to prevent primitive duplication across
the Hsu / Bismut / Elworthy / Malliavin stack: horizontal lift, the
orthonormal frame bundle O(M), Stratonovich development, and Euler-
Maruyama stochastic development are defined once here.
Core constructs
- Orthonormal frame bundle
O(M)— the total space of orthonormal bases of the tangent spaces ofM. A point is(p, r)wherer = (e_1, …, e_n)is an orthonormal basis ofT_p M. - Horizontal lift — given
u ∈ T_p M, a curve inO(M)whose velocity projects touand whose frame evolves by parallel transport. Implemented as a right action ofR^non the frame bundle. - Stochastic development (Eells-Elworthy-Malliavin) — solve the SDE
on
O(M)driven by Euclidean Brownian motionW_twith Stratonovich differential∂_t (p, r) = H_i(p, r) ∘ dW^i_t. Pushed-down trajectory onMis Brownian motion in the Riemannian sense. - Wishart SPD diffusion — closed-form SDE on the SPD manifold, used
by
cartan-homog's stochastic ensembles for Wishart-perturbed phase property propagation.
Downstream consumers
cartan-homog'sWishartRveEnsemble(stochastic feature): perturb one phase's property along a Wishart trajectory, aggregate the effective tensors with the Karcher (Frechet) mean onSpd<N>.- Reserved foundation for future Bismut-Elworthy-Li Greeks work.
Example
use Spd;
use WishartSpdDiffusion;
use SeedableRng;
let manifold = new;
let mut rng = seed_from_u64;
let p0 = manifold.identity;
let diff = new;
// step the SDE forward in time