cartan-manifolds
Concrete Riemannian manifold implementations for cartan.
Part of the cartan workspace.
Overview
cartan-manifolds provides const-generic manifold types that implement the
trait hierarchy from cartan-core. All geometry uses nalgebra SVector
and SMatrix types for statically-sized, stack-allocated storage. Manifold
types are zero-sized; dimensions are checked at compile time.
Available manifolds:
| Type | Space |
|---|---|
Euclidean<N> |
Flat R^N (trivial baseline) |
Sphere<N> |
S^{N-1} with round metric |
SpecialOrthogonal<N> |
SO(N) with bi-invariant metric |
SpecialEuclidean<N> |
SE(N) with product metric |
Spd<N> |
SPD(N) with affine-invariant metric |
Grassmann<N, K> |
Gr(N,K) with canonical metric |
Corr<N> |
Correlation matrices with Frobenius metric |
QTensor3 |
Traceless symmetric Q-tensors in 3D |
The crate also provides FrameField3D for director/frame-field operations.
Example
use Manifold;
use Sphere;
use SVector;
let s2 = ;
let north = from;
let tangent = s2.project_tangent;
let q = s2.exp;
assert!;
no_std
Disable default features and enable alloc for embedded targets. Some
manifolds (Spd, Corr, QTensor3, FrameField3D) require std.
= { = "0.1", = false, = ["alloc"] }