src/manifold.rs

changeset 5
f248e1434c3b
parent 3
ff4656da04af
child 6
df9628092285
equal deleted inserted replaced
4:e09437844ad9 5:f248e1434c3b
1
2 use alg_tools::euclidean::Euclidean;
1 3
2 /// A point on a manifold 4 /// A point on a manifold
3 pub trait ManifoldPoint : Clone + PartialEq { 5 pub trait ManifoldPoint : Clone + PartialEq {
4 // Type of tangent factors 6 // Type of tangent factors
5 type Tangent : Euclidean<f64, Output=Self::Tangent> + std::fmt::Debug; 7 type Tangent : Euclidean<f64, Output=Self::Tangent> + std::fmt::Debug;
7 /// Exponential map 9 /// Exponential map
8 fn exp(&self, tangent : &Self::Tangent) -> Self; 10 fn exp(&self, tangent : &Self::Tangent) -> Self;
9 11
10 /// Logarithmic map 12 /// Logarithmic map
11 fn log(&self, other : &Self) -> Self::Tangent; 13 fn log(&self, other : &Self) -> Self::Tangent;
14
15 /// Distance to `other`
16 fn dist_to(&self, other : &Self) -> f64;
12 } 17 }
18

mercurial