manifolds-0.6.0.0: Coordinate-free hypersurfaces
Copyright(c) Justus Sagemüller 2018
LicenseGPL v3
Maintainer(@) jsag $ hvl.no
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Data.Manifold.FibreBundle

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 -> 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, Category k, Object k f) => ParallelTransporting k m f where Source #

Minimal complete definition

parallelTransport

Instances

Instances details
(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, s ~ Scalar (Needle m), Num' s) => ParallelTransporting (Discrete :: Type -> Type -> Type) m (ZeroDim s) Source # 
Instance details

Defined in Data.Manifold.FibreBundle

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

Defined in Data.Manifold.FibreBundle

(PseudoAffine 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 -> v) -> FibreBundle x f -> FibreBundle x f Source #

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

Orphan instances

AdditiveGroup f => 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 f, PseudoAffine f, ParallelTransporting (LinearFunction s) (Needle m) (Needle f), s ~ Scalar (Needle m)) => PseudoAffine (FibreBundle m f) Source # 
Instance details

(ParallelTransporting ((->) :: Type -> Type -> Type) m 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) #

(s ~ , s' ~ ) => Rotatable (FibreBundle (S²_ s) (V2 s')) Source # 
Instance details

Associated Types

type AxisSpace (FibreBundle (S²_ s) (V2 s')) #

Methods

rotateAbout :: AxisSpace (FibreBundle (S²_ s) (V2 s')) -> -> FibreBundle (S²_ s) (V2 s') -> FibreBundle (S²_ s) (V2 s') #

(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 (ZeroDim s)) (FibreBundle v f) Source # 
Instance details

(NaturallyEmbedded v w, s' ~ s) => NaturallyEmbedded (FibreBundle (V2 s) v) (FibreBundle (V2 s') w) Source # 
Instance details

Methods

embed :: FibreBundle (V2 s) v -> FibreBundle (V2 s') w Source #

coEmbed :: FibreBundle (V2 s') w -> FibreBundle (V2 s) v Source #

(NaturallyEmbedded v w, s' ~ s) => NaturallyEmbedded (FibreBundle (V3 s) v) (FibreBundle (V3 s') w) Source # 
Instance details

Methods

embed :: FibreBundle (V3 s) v -> FibreBundle (V3 s') w Source #

coEmbed :: FibreBundle (V3 s') w -> FibreBundle (V3 s) v Source #

(NaturallyEmbedded v w, s' ~ s) => NaturallyEmbedded (FibreBundle (V4 s) v) (FibreBundle (V4 s') w) Source # 
Instance details

Methods

embed :: FibreBundle (V4 s) v -> FibreBundle (V4 s') w Source #

coEmbed :: FibreBundle (V4 s') w -> FibreBundle (V4 s) v Source #

(RealFloat s, InnerSpace s, s ~ s', s ~ s'', s ~ s''') => NaturallyEmbedded (FibreBundle (S¹_ s) s') (FibreBundle (V2 s'') (V2 s''')) Source # 
Instance details

Methods

embed :: FibreBundle (S¹_ s) s' -> FibreBundle (V2 s'') (V2 s''') Source #

coEmbed :: FibreBundle (V2 s'') (V2 s''') -> FibreBundle (S¹_ s) s' Source #

(RealFloat' s, InnerSpace s, s ~ s', s ~ s'', s ~ s''') => NaturallyEmbedded (FibreBundle (S²_ s) (V2 s')) (FibreBundle (V3 s'') (V3 s''')) Source # 
Instance details

Methods

embed :: FibreBundle (S²_ s) (V2 s') -> FibreBundle (V3 s'') (V3 s''') Source #

coEmbed :: FibreBundle (V3 s'') (V3 s''') -> FibreBundle (S²_ s) (V2 s') Source #

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