cartan-core 0.2.0

Core traits for Riemannian geometry: Manifold, Retraction, ParallelTransport, Curvature
Documentation

cartan-core

Core trait definitions for Riemannian geometry.

crates.io docs.rs

Part of the cartan workspace.

Overview

cartan-core defines the foundational trait hierarchy that all cartan manifolds, optimizers, and geometric tools depend on. It has minimal dependencies (only rand for RNG trait bounds) and can be used standalone by downstream crates that implement custom manifolds against the cartan trait system.

The trait hierarchy is:

Manifold (exp, log, inner, project, validate)
  |
  +-- Retraction (cheaper exp approximation)
  +-- ParallelTransport -> VectorTransport (blanket impl)
  +-- Connection (Riemannian Hessian)
  |     |
  |     +-- Curvature (Riemann tensor, Ricci, scalar)
  +-- GeodesicInterpolation (gamma(t) sampling)

All floating-point computation uses the Real type alias (currently f64), so that a future generic refactor is mechanical. The crate also provides CartanError for structured error handling across the workspace.

Example

use cartan_core::{Manifold, Real};

/// Check that a point lies on the manifold and compute a tangent norm.
fn tangent_norm<M: Manifold>(m: &M, p: &M::Point, v: &M::Tangent) -> Real {
    assert!(m.check(p).is_ok());
    m.inner(p, v, v).sqrt()
}

no_std

Disable default features and enable alloc for embedded targets:

cartan-core = { version = "0.1", default-features = false, features = ["alloc"] }

License

MIT