manifolds-core-0.4.5.0: The basic classes for the manifolds hierarchy.

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

Math.Manifold.Core.Types

Contents

Description

Several low-dimensional manifolds, represented in some simple way as Haskell data types. All these are in the PseudoAffine class.

Synopsis

Documentation

data S⁰ Source #

The zero-dimensional sphere is actually just two points. Implementation might therefore change to ℝ⁰ + ℝ⁰: the disjoint sum of two single-point spaces.

pattern :: Double -> Source #

Deprecated: Use Math.Manifold.Core.Types.S¹Polar

data Source #

The ordinary unit sphere.

Constructors

S²Polar 

Fields

Instances

Show Source # 

Methods

showsPrec :: Int -> -> ShowS #

show :: -> String #

showList :: [] -> ShowS #

pattern :: Double -> Double -> Source #

Deprecated: Use Math.Manifold.Core.Types.S²Polar

newtype Source #

The “one-dimensional disk” – really just the line segment between the two points -1 and 1 of 'S⁰', i.e. this is simply a closed interval.

Constructors

 

Fields

data Source #

The standard, closed unit disk. Homeomorphic to the cone over 'S¹', but not in the the obvious, “flat” way. (In is not homeomorphic, despite the almost identical ADT definition, to the projective space 'ℝP²'!)

Constructors

D²Polar 

Fields

Instances

Show Source # 

Methods

showsPrec :: Int -> -> ShowS #

show :: -> String #

showList :: [] -> ShowS #

pattern :: Double -> Double -> Source #

Deprecated: Use Math.Manifold.Core.Types.D²Polar

pattern ℝP¹ :: Double -> ℝP¹ Source #

Deprecated: Use Math.Manifold.Core.Types.HemisphereℝP¹Polar (notice: different range)

data ℝP² Source #

The two-dimensional real projective space, implemented as a disk with opposing points on the rim glued together. Image this disk as the northern hemisphere of a unit sphere; 'ℝP²' is the space of all straight lines passing through the origin of 'ℝ³', and each of these lines is represented by the point at which it passes through the hemisphere.

Constructors

HemisphereℝP²Polar 

Fields

Instances

pattern ℝP² :: Double -> Double -> ℝP² Source #

Deprecated: Use Math.Manifold.Core.Types.HemisphereℝP²Polar (notice: different range)

data Cℝay x Source #

An open cone is homeomorphic to a closed cone without the “lid”, i.e. without the “last copy” of x, at the far end of the height interval. Since that means the height does not include its supremum, it is actually more natural to express it as the entire real ray, hence the name.

Constructors

Cℝay 

Fields

Instances

Show x => Show (Cℝay x) Source # 

Methods

showsPrec :: Int -> Cℝay x -> ShowS #

show :: Cℝay x -> String #

showList :: [Cℝay x] -> ShowS #

data CD¹ x Source #

A (closed) cone over a space x is the product of x with the closed interval 'D¹' of “heights”, except on its “tip”: here, x is smashed to a single point.

This construct becomes (homeomorphic-to-) an actual geometric cone (and to 'D²') in the special case x = 'S¹'.

Constructors

CD¹ 

Fields

Instances

Show x => Show (CD¹ x) Source # 

Methods

showsPrec :: Int -> CD¹ x -> ShowS #

show :: CD¹ x -> String #

showList :: [CD¹ x] -> ShowS #

Orphan instances

HasBasis () Source # 

Associated Types

type Basis () :: * #

Methods

basisValue :: Basis () -> () #

decompose :: () -> [(Basis (), Scalar ())] #

decompose' :: () -> Basis () -> Scalar () #

VectorSpace () Source # 

Associated Types

type Scalar () :: * #

Methods

(*^) :: Scalar () -> () -> () #

InnerSpace () Source # 

Methods

(<.>) :: () -> () -> Scalar () #