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

Data.Manifold.FibreBundle

Contents

Description

 
Synopsis

Documentation

pattern TangentBundle :: m -> Needle m -> FibreBundle m (Needle m) Source #

pattern (:@.) :: f -> m -> FibreBundle m f infixr 5 Source #

Provided for convenience. Flipped synonym of FibreBundle, restricted to manifolds without boundary (so the type of the whole can be inferred from its interior).

tangentAt :: (AdditiveGroup (Needle m), m ~ Interior m) => m -> TangentBundle m Source #

A zero vector in the fibre bundle at the given position. Intended to be used with tangent-modifying lenses such as delta.

class (PseudoAffine m, m ~ Interior m, Category k, Object k f) => ParallelTransporting k m f where Source #

Minimal complete definition

parallelTransport

Instances
(EnhancedCat k (LinearMap ), Object k ℝ²) => ParallelTransporting k ℝ² Source # 
Instance details

Defined in Data.Manifold.FibreBundle

(Category k, Object k ) => ParallelTransporting k Source # 
Instance details

Defined in Data.Manifold.FibreBundle

(Category k, Object k ℝ⁴) => ParallelTransporting k ℝ⁴ ℝ⁴ Source # 
Instance details

Defined in Data.Manifold.FibreBundle

(Category k, Object k ℝ³) => ParallelTransporting k ℝ³ ℝ³ Source # 
Instance details

Defined in Data.Manifold.FibreBundle

(Category k, Object k ℝ²) => ParallelTransporting k ℝ² ℝ² Source # 
Instance details

Defined in Data.Manifold.FibreBundle

(Category k, Object k ) => ParallelTransporting k Source # 
Instance details

Defined in Data.Manifold.FibreBundle

(ParallelTransporting k a f, ParallelTransporting k a g, ParallelTransporting (LinearFunction s) (Needle a) (Needle f, Needle g), PseudoAffine f, PseudoAffine g, Morphism k, ObjectPair k f g) => ParallelTransporting k a (f, g) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

Methods

transportOnNeedleWitness :: TransportOnNeedleWitness k a (f, g) Source #

forgetTransportProperties :: ForgetTransportProperties k a (f, g) Source #

parallelTransport :: a -> Needle a -> k (f, g) (f, g) Source #

translateAndInvblyParTransport :: a -> Needle a -> (a, (k (f, g) (f, g), k (f, g) (f, g))) Source #

(ParallelTransporting k a fa, ParallelTransporting k b fb, PseudoAffine fa, PseudoAffine fb, Scalar (Needle a) ~ s, Scalar (Needle b) ~ s, Scalar (Needle fa) ~ s, Scalar (Needle fb) ~ s, Num' s, Morphism k, ObjectPair k fa fb) => ParallelTransporting k (a, b) (fa, fb) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

Methods

transportOnNeedleWitness :: TransportOnNeedleWitness k (a, b) (fa, fb) Source #

forgetTransportProperties :: ForgetTransportProperties k (a, b) (fa, fb) Source #

parallelTransport :: (a, b) -> Needle (a, b) -> k (fa, fb) (fa, fb) Source #

translateAndInvblyParTransport :: (a, b) -> Needle (a, b) -> ((a, b), (k (fa, fb) (fa, fb), k (fa, fb) (fa, fb))) Source #

(PseudoAffine m, m ~ Interior m, s ~ Scalar (Needle m), Num' s) => ParallelTransporting (Discrete :: Type -> Type -> Type) m (ZeroDim s) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

(PseudoAffine m, m ~ Interior m, s ~ Scalar (Needle m), Num' s) => ParallelTransporting (LinearFunction s) m (ZeroDim s) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

(PseudoAffine m, m ~ Interior m, s ~ Scalar (Needle m), Num' s) => ParallelTransporting ((->) :: Type -> Type -> Type) m (ZeroDim s) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

transformEmbeddedTangents :: forall x f v. (NaturallyEmbedded (FibreBundle x f) (FibreBundle v v), v ~ Interior v) => (v -> v) -> FibreBundle x f -> FibreBundle x f Source #

ex -> ey, ey -> ez, ez -> ex

Orphan instances

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

Methods

embed :: x -> FibreBundle x f Source #

coEmbed :: FibreBundle x f -> x Source #

(ParallelTransporting (LinearFunction (Scalar f)) m f, AdditiveGroup m, VectorSpace f) => AdditiveGroup (FibreBundle m f) Source # 
Instance details

(ParallelTransporting ((->) :: Type -> Type -> Type) m (Interior f), Semimanifold f, ParallelTransporting (LinearFunction s) (Needle m) (Needle f), s ~ Scalar (Needle m)) => Semimanifold (FibreBundle m f) Source # 
Instance details

Associated Types

type Needle (FibreBundle m f) :: Type #

type Interior (FibreBundle m f) :: Type #

(ParallelTransporting ((->) :: Type -> Type -> Type) m f, ParallelTransporting ((->) :: Type -> Type -> Type) m (Interior f), PseudoAffine f, ParallelTransporting (LinearFunction s) (Needle m) (Needle f), s ~ Scalar (Needle m)) => PseudoAffine (FibreBundle m f) Source # 
Instance details

Rotatable (FibreBundle ℝ²) Source # 
Instance details

Associated Types

type AxisSpace (FibreBundle ℝ²) :: Type #

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

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

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

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

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

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

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

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