gMath

Geometry

Riemannian manifolds, Lie groups, differential geometry, projective geometry, fiber bundles, ODE integrators, and tensors: all over the binary fixed-point types.

What it is

The geometric layer builds on FixedVector/FixedMatrix and the linear algebra modules to provide coordinate-free constructs: geodesics and parallel transport on manifolds, exp/log and the adjoint on Lie groups, curvature tensors, projective transforms, connections on bundles, ODE integration, and arbitrary-rank tensors. Closed-form algorithms are used where they exist (Rodrigues for SO(3), the V-matrix for SE(3)); everything else composes the wide-tier matrix functions.

Usage

use g_math::fixed_point::{FixedVector, FixedPoint};
use g_math::fixed_point::imperative::manifold::{Manifold, Sphere};

let s = Sphere { dim: 2 };                    // unit 2-sphere (ambient = dim + 1)
let p = FixedVector::from_slice(&[FixedPoint::one(), FixedPoint::ZERO, FixedPoint::ZERO]);
let q = FixedVector::from_slice(&[FixedPoint::ZERO, FixedPoint::one(), FixedPoint::ZERO]);
let d = s.distance(&p, &q).unwrap();          // geodesic distance
let v = s.log_map(&p, &q).unwrap();           // tangent vector p → q
let back = s.exp_map(&p, &v).unwrap();        // ≈ q

What's here

Public API

See PUBLIC_API.md → Geometry, → ODE, → Tensors, and docs.rs.

Behaviour & limits

Determinism guarantees are in CONTRACT.md.

Disclaimer

This software is provided "as is", without warranty of any kind, express or implied. Use of this software is entirely at your own risk. In no event shall the author or contributors be held liable for any damages arising from the use or inability to use this software.


Built by Niels Erik Toren · support & donations.