| Copyright | (c) Justus Sagemüller 2016 |
|---|---|
| License | GPL v3 |
| Maintainer | (@) jsag $ hvl.no |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | Safe |
| Language | Haskell2010 |
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
- type ℝ⁰ = ZeroDim ℝ
- type ℝ = Double
- data S⁰
- otherHalfSphere :: S⁰ -> S⁰
- newtype S¹ = S¹Polar {}
- pattern S¹ :: Double -> S¹
- data S² = S²Polar {}
- pattern S² :: Double -> Double -> S²
- newtype D¹ = D¹ {}
- fromIntv0to1 :: ℝ -> D¹
- data D² = D²Polar {}
- pattern D² :: Double -> Double -> D²
- data ℝP⁰ = ℝPZero
- newtype ℝP¹ = HemisphereℝP¹Polar {}
- pattern ℝP¹ :: Double -> ℝP¹
- data ℝP² = HemisphereℝP²Polar {}
- pattern ℝP² :: Double -> Double -> ℝP²
- data Cℝay x = Cℝay {
- hParamCℝay :: !Double
- pParamCℝay :: !x
- data CD¹ x = CD¹ {}
Documentation
The zero-dimensional sphere is actually just two points. Implementation might
therefore change to ℝ⁰ : the disjoint sum of two
single-point spaces.+ ℝ⁰
Constructors
| PositiveHalfSphere | |
| NegativeHalfSphere |
Instances
| Eq S⁰ Source # | |
| Show S⁰ Source # | |
| Generic S⁰ Source # | |
| PseudoAffine S⁰ Source # | |
| Semimanifold S⁰ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
| type Rep S⁰ Source # | |
Defined in Math.Manifold.Core.Types.Internal | |
| type Needle S⁰ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
| type Interior S⁰ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
otherHalfSphere :: S⁰ -> S⁰ Source #
The unit circle.
Instances
| Eq S¹ Source # | |
| Show S¹ Source # | |
| Generic S¹ Source # | |
| PseudoAffine S¹ Source # | |
| Semimanifold S¹ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
| type Rep S¹ Source # | |
Defined in Math.Manifold.Core.Types.Internal | |
| type Needle S¹ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
| type Interior S¹ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
The ordinary unit sphere.
Instances
| Eq S² Source # | |
| Show S² Source # | |
| Generic S² Source # | |
| type Rep S² Source # | |
Defined in Math.Manifold.Core.Types.Internal type Rep S² = D1 (MetaData "S\178" "Math.Manifold.Core.Types.Internal" "manifolds-core-0.5.1.0-7erFyQcGCyw3Wj1JfXnH10" False) (C1 (MetaCons "S\178Polar" PrefixI True) (S1 (MetaSel (Just "\977ParamS\178") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Double) :*: S1 (MetaSel (Just "\966ParamS\178") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Double))) | |
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.
Instances
| Show D¹ Source # | |
| Generic D¹ Source # | |
| PseudoAffine D¹ Source # | |
| Semimanifold D¹ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
| type Rep D¹ Source # | |
Defined in Math.Manifold.Core.Types.Internal | |
| type Needle D¹ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
| type Interior D¹ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
fromIntv0to1 :: ℝ -> D¹ 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²!)
Instances
| Show D² Source # | |
| Generic D² Source # | |
| type Rep D² Source # | |
Defined in Math.Manifold.Core.Types.Internal type Rep D² = D1 (MetaData "D\178" "Math.Manifold.Core.Types.Internal" "manifolds-core-0.5.1.0-7erFyQcGCyw3Wj1JfXnH10" False) (C1 (MetaCons "D\178Polar" PrefixI True) (S1 (MetaSel (Just "rParamD\178") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Double) :*: S1 (MetaSel (Just "\966ParamD\178") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Double))) | |
Constructors
| ℝPZero |
Instances
| Eq ℝP⁰ Source # | |
| Show ℝP⁰ Source # | |
| Generic ℝP⁰ Source # | |
| PseudoAffine ℝP⁰ Source # | |
| Semimanifold ℝP⁰ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
| type Rep ℝP⁰ Source # | |
| type Needle ℝP⁰ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
| type Interior ℝP⁰ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
Constructors
| HemisphereℝP¹Polar | |
Instances
| Show ℝP¹ Source # | |
| Generic ℝP¹ Source # | |
| PseudoAffine ℝP¹ Source # | |
| Semimanifold ℝP¹ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
| type Rep ℝP¹ Source # | |
Defined in Math.Manifold.Core.Types.Internal | |
| type Needle ℝP¹ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
| type Interior ℝP¹ Source # | |
Defined in Math.Manifold.Core.PseudoAffine | |
pattern ℝP¹ :: Double -> ℝP¹ Source #
Deprecated: Use Math.Manifold.Core.Types.HemisphereℝP¹Polar (notice: different range)
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 | |
Instances
| Show ℝP² Source # | |
| Generic ℝP² Source # | |
| type Rep ℝP² Source # | |
Defined in Math.Manifold.Core.Types.Internal type Rep ℝP² = D1 (MetaData "\8477P\178" "Math.Manifold.Core.Types.Internal" "manifolds-core-0.5.1.0-7erFyQcGCyw3Wj1JfXnH10" False) (C1 (MetaCons "Hemisphere\8477P\178Polar" PrefixI True) (S1 (MetaSel (Just "\977Param\8477P\178") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Double) :*: S1 (MetaSel (Just "\966Param\8477P\178") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Double))) | |
pattern ℝP² :: Double -> Double -> ℝP² Source #
Deprecated: Use Math.Manifold.Core.Types.HemisphereℝP²Polar (notice: different range)
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 # | |
| Generic (Cℝay x) Source # | |
| type Rep (Cℝay x) Source # | |
Defined in Math.Manifold.Core.Types.Internal type Rep (Cℝay x) = D1 (MetaData "C\8477ay" "Math.Manifold.Core.Types.Internal" "manifolds-core-0.5.1.0-7erFyQcGCyw3Wj1JfXnH10" False) (C1 (MetaCons "C\8477ay" PrefixI True) (S1 (MetaSel (Just "hParamC\8477ay") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Double) :*: S1 (MetaSel (Just "pParamC\8477ay") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 x))) | |
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¹
Instances
| Show x => Show (CD¹ x) Source # | |
| Generic (CD¹ x) Source # | |
| type Rep (CD¹ x) Source # | |
Defined in Math.Manifold.Core.Types.Internal type Rep (CD¹ x) = D1 (MetaData "CD\185" "Math.Manifold.Core.Types.Internal" "manifolds-core-0.5.1.0-7erFyQcGCyw3Wj1JfXnH10" False) (C1 (MetaCons "CD\185" PrefixI True) (S1 (MetaSel (Just "hParamCD\185") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Double) :*: S1 (MetaSel (Just "pParamCD\185") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 x))) | |
Orphan instances
| HasBasis () Source # | |
| VectorSpace () Source # | |
| InnerSpace () Source # | |