cartan

Euclidean Space

as a Riemannian manifold; flat, globally defined, and the baseline against which all other manifolds are measured.

ManifoldRetractionConnectionParallelTransportVectorTransportCurvatureGeodesicInterp.

Geometry Summary

PropertyValue
PointsAll of
Tangent space at $p$ (entire space)
MetricStandard dot product $\langle u, v\rangle = u^\top v$
Cut locusEmpty: geodesics are globally unique
Injectivity radius$\infty$
Sectional curvature$K \equiv 0$
Ricci tensor$0$
Scalar curvature$0$

Formula Reference

All formulas are trivial; this manifold is its own tangent space:

Exponential map:

Logarithmic map (always defined, never returns None):

Projection (identity; all points and vectors are already "on" the manifold):

Parallel transport (identity; tangent spaces are all identified with ):

Distance:

Code Examples

use cartan::prelude::*;
use cartan::manifolds::Euclidean;
 
let r3  = Euclidean::<3>;
let p   = [1.0_f64, 2.0, 3.0];
let v   = [0.5_f64, -1.0, 0.0];
 
// exp is just addition.
let q = r3.exp(&p, &v);
assert_eq!(q, [1.5, 1.0, 3.0]);
 
// log is subtraction; always Some.
let v_back = r3.log(&p, &q).unwrap();
assert_eq!(v_back, v);
 
// Parallel transport is the identity.
let w = r3.parallel_transport(&p, &q, &v).unwrap();
assert_eq!(w, v);
 
// Zero curvature everywhere.
let u = [1.0_f64, 0.0, 0.0];
let k = r3.sectional(&p, &u, &v);
assert_eq!(k, 0.0);

Role in cartan

Euclidean<N> serves three purposes:

1. Testing baseline. Every algorithm that works on a general manifold should reduce to standard Euclidean behavior on Euclidean<N>. Use it to verify your code before testing on curved manifolds.

2. Product manifold component. The product manifold $M_1 \times M_2$ has factors for unconstrained coordinates. cartan-optim's ProductManifold uses Euclidean for these.

3. Unconstrained optimization. When your problem has no manifold constraint, Euclidean lets you use the same optimizer interface as curved manifolds - Riemannian gradient descent on is just gradient descent.

Connection and Curvature

The Levi-Civita connection on is the ordinary directional derivative; all Christoffel symbols vanish:

The Riemann tensor $R \equiv 0$ and the geodesics $\gamma(t) = p + tv$ are straight lines; consistent with Euclid's parallel postulate.