cartan 0.5.1

Riemannian geometry, manifold optimization, and geodesic computation in Rust
Documentation

cartan

Top-level facade for the cartan workspace: Riemannian geometry, manifold optimisation, and geodesic computation in Rust.

crates.io docs.rs

What this crate does

cartan is a re-export façade. Downstream users add cartan = "0.5" and get the most commonly used items from the subcrates under one namespace — no need to track sibling crate versions individually.

For finer-grained dependency control (e.g. embedded targets that want cartan-core without cartan-manifolds, or projects that want the FFT stack without the optimisation layer), depend on the subcrates directly.

Workspace layout

Subcrate What it does
cartan-core Abstract trait system: Manifold, Retraction, ParallelTransport, Connection, Curvature
cartan-manifolds Concrete manifolds: Sphere<N>, Grassmann<N,K>, Spd<N>, SO(N), SE(N), Stiefel<N,K>
cartan-optim Optimisation: RGD, RCG, RTR, Fréchet mean
cartan-geo Geodesics, curvature queries, Jacobi field integration
cartan-dec Discrete exterior calculus on simplicial meshes, k-atic line bundles, Stokes solver
cartan-remesh 2D + 3D adaptive remeshing (split / collapse / flip / red-refinement)
cartan-stochastic Frame bundle, horizontal lift, Stratonovich development, Wishart SDE on SPD
cartan-homog Mean-field + full-field homogenisation; spectral solver via cartan-gpu
cartan-homog-valid ECHOES cross-validation harness
cartan-gpu Portable GPU primitives: VkFFT (Vulkan) + cuFFT (CUDA) unified behind one trait, zero-copy interop
cartan-gpu-sys Raw FFI to vendored VkFFT (internal plumbing for cartan-gpu)
cartan-py PyO3 / numpy bindings to the full library

Quick start

use cartan::prelude::*;
use cartan::manifolds::Sphere;

let s2 = Sphere::<3>;
let mut rng = rand::rng();
let p = s2.random_point(&mut rng);
let v = s2.random_tangent(&p, &mut rng);

let q = s2.exp(&p, &v);
let v_back = s2.log(&p, &q).unwrap();
let d = s2.dist(&p, &q).unwrap();

See the top-level README for the full feature catalogue, no_std support, and the published rendered documentation site at cartan.sotofranco.dev.

License

MIT