manifolds-0.4.1.0: Coordinate-free hypersurfaces

Copyright(c) Justus Sagemüller 2015
LicenseGPL v3
Maintainer(@) sagemueller $ geo.uni-koeln.de
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Data.Manifold.Riemannian

Description

Riemannian manifolds are manifolds equipped with a Metric at each point. That means, these manifolds aren't merely topological objects anymore, but have a geometry as well. This gives, in particular, a notion of distance and shortest paths (geodesics) along which you can interpolate.

Keep in mind that the types in this library are generally defined in an abstract-mathematical spirit, which may not always match the intuition if you think about manifolds as embedded in ℝ³. (For instance, the torus inherits its geometry from the decomposition as 'S¹' × 'S¹', not from the “doughnut” embedding; the cone over is simply treated as the unit disk, etc..)

Synopsis

Documentation

class Semimanifold x => Geodesic x where Source

Minimal complete definition

geodesicBetween

Methods

geodesicBetween Source

Arguments

:: x

Starting point; the interpolation will yield this at -1.

-> x

End point, for +1.

If the two points are actually connected by a path...

-> Maybe ( -> x)

...then this is the interpolation function. Attention: the type will change to Differentiable in the future.

geodesicWitness :: GeodesicWitness x Source

middleBetween :: x -> x -> Maybe x Source

Instances

Geodesic Source 
Geodesic S⁰ Source 
Geodesic Source 
Geodesic ℝ⁴ Source 
Geodesic ℝ³ Source 
Geodesic ℝ² Source 
Geodesic ℝ¹ Source 
Geodesic (V0 ) Source 
Geodesic (ZeroDim s) Source 
(Geodesic v, FiniteFreeSpace v, FiniteFreeSpace (DualVector v), LinearSpace v, (~) * (Scalar v) , Geodesic (DualVector v), InnerSpace (DualVector v)) => Geodesic (Stiefel1 v) Source 
(WithField AffineManifold x, Geodesic x, SimpleSpace (Needle x)) => Geodesic (Shade' x) Source 
(WithField PseudoAffine x, Geodesic (Interior x), SimpleSpace (Needle x)) => Geodesic (Shade x) Source 
(Geodesic a, Geodesic b) => Geodesic (a, b) Source 
(Geodesic a, Geodesic b, Geodesic c) => Geodesic (a, b, c) Source 
(TensorSpace v, (~) * (Scalar v) , TensorSpace w, (~) * (Scalar w) ) => Geodesic (Tensor v w) Source 
(LinearSpace v, (~) * (Scalar v) , TensorSpace w, (~) * (Scalar w) ) => Geodesic (LinearMap v w) Source 
(TensorSpace v, (~) * (Scalar v) , TensorSpace w, (~) * (Scalar w) ) => Geodesic (LinearFunction v w) Source 

interpolate :: (Geodesic x, IntervalLike i) => x -> x -> Maybe (i -> x) Source

class WithField PseudoAffine i => IntervalLike i where Source

One-dimensional manifolds, whose closure is homeomorpic to the unit interval.

Methods

toClosedInterval :: i -> Source

class Geodesic m => Riemannian m where Source

Instances

pointsBarycenter :: Geodesic m => NonEmpty m -> Maybe m Source

type FlatSpace x = (AffineManifold x, Geodesic x, SimpleSpace x) Source