manifolds-0.5.1.0: Coordinate-free hypersurfaces

Copyright(c) Justus Sagemüller 2018
LicenseGPL v3
Maintainer(@) jsag $ hvl.no
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Math.Manifold.Embedding.Simple.Class

Description

Some manifolds are “naturally” embedded within some bigger space. For instance, the topological spheres are readily identified with the geometric unit spheres in real vector spaces.

An embedding is a pretty strong relationship, but often all that's needed is being able to map single points from the manifold to the enclosing space. This module offers a class which does just that.

Documentation

class NaturallyEmbedded m v where Source #

Methods

embed :: m -> v Source #

coEmbed :: v -> m Source #

Instances
NaturallyEmbedded S⁰ Source # 
Instance details

Defined in Data.Manifold.Types.Primitive

Methods

embed :: S⁰ -> Source #

coEmbed :: -> S⁰ Source #

NaturallyEmbedded ℝ² Source # 
Instance details

Defined in Data.Manifold.Types.Primitive

NaturallyEmbedded ℝ³ Source # 
Instance details

Defined in Data.Manifold.Types.Primitive

NaturallyEmbedded ℝP² ℝ³ Source # 
Instance details

Defined in Data.Manifold.Types.Primitive

NaturallyEmbedded Source # 
Instance details

Defined in Data.Manifold.Types.Primitive

Methods

embed :: -> Source #

coEmbed :: -> Source #

NaturallyEmbedded Source # 
Instance details

Defined in Data.Manifold.Types.Primitive

Methods

embed :: -> Source #

coEmbed :: -> Source #

NaturallyEmbedded ℝ⁰ ℝ⁰ Source # 
Instance details

Defined in Data.Manifold.Types.Primitive

NaturallyEmbedded ℝ⁴ ℝ⁴ Source # 
Instance details

Defined in Data.Manifold.Types.Primitive

NaturallyEmbedded ℝ³ ℝ³ Source # 
Instance details

Defined in Data.Manifold.Types.Primitive

NaturallyEmbedded ℝ² ℝ² Source # 
Instance details

Defined in Data.Manifold.Types.Primitive

(VectorSpace y, VectorSpace z) => NaturallyEmbedded x ((x, y), z) Source # 
Instance details

Defined in Data.Manifold.Types.Primitive

Methods

embed :: x -> ((x, y), z) Source #

coEmbed :: ((x, y), z) -> x Source #

VectorSpace y => NaturallyEmbedded x (x, y) Source # 
Instance details

Defined in Data.Manifold.Types.Primitive

Methods

embed :: x -> (x, y) Source #

coEmbed :: (x, y) -> x Source #

(AdditiveGroup f, x ~ Interior x) => NaturallyEmbedded x (FibreBundle x f) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

Methods

embed :: x -> FibreBundle x f Source #

coEmbed :: FibreBundle x f -> x Source #

NaturallyEmbedded x p => NaturallyEmbedded (Cℝay x) (p, ) Source # 
Instance details

Defined in Data.Manifold.Types.Primitive

Methods

embed :: Cℝay x -> (p, ) Source #

coEmbed :: (p, ) -> Cℝay x Source #

(AdditiveGroup y, AdditiveGroup g) => NaturallyEmbedded (FibreBundle x f) (FibreBundle (x, y) (f, g)) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

Methods

embed :: FibreBundle x f -> FibreBundle (x, y) (f, g) Source #

coEmbed :: FibreBundle (x, y) (f, g) -> FibreBundle x f Source #

(NaturallyEmbedded m v, VectorSpace f) => NaturallyEmbedded (FibreBundle m ℝ⁰) (FibreBundle v f) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

NaturallyEmbedded (FibreBundle ) (FibreBundle ℝ² ℝ²) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

NaturallyEmbedded (FibreBundle ℝ²) (FibreBundle ℝ³ ℝ³) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

NaturallyEmbedded v w => NaturallyEmbedded (FibreBundle v) (FibreBundle w) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

NaturallyEmbedded v w => NaturallyEmbedded (FibreBundle ℝ⁴ v) (FibreBundle ℝ⁴ w) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

NaturallyEmbedded v w => NaturallyEmbedded (FibreBundle ℝ³ v) (FibreBundle ℝ³ w) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

NaturallyEmbedded v w => NaturallyEmbedded (FibreBundle ℝ² v) (FibreBundle ℝ² w) Source # 
Instance details

Defined in Data.Manifold.FibreBundle