manifolds-0.5.1.0: Coordinate-free hypersurfaces

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

Data.Function.Affine

Contents

Description

 
Synopsis

Documentation

data Affine s d c where Source #

Constructors

Affine :: (ChartIndex d :->: (c, LinearMap s (Needle d) (Needle c))) -> Affine s d c 
Instances
Num' s => Morphism (Affine s) Source # 
Instance details

Defined in Data.Function.Affine

Methods

first :: (ObjectPair (Affine s) b d, ObjectPair (Affine s) c d) => Affine s b c -> Affine s (b, d) (c, d) #

second :: (ObjectPair (Affine s) d b, ObjectPair (Affine s) d c) => Affine s b c -> Affine s (d, b) (d, c) #

(***) :: (ObjectPair (Affine s) b b', ObjectPair (Affine s) c c') => Affine s b c -> Affine s b' c' -> Affine s (b, b') (c, c') #

Num' s => PreArrow (Affine s) Source # 
Instance details

Defined in Data.Function.Affine

Methods

(&&&) :: (Object (Affine s) b, ObjectPair (Affine s) c c') => Affine s b c -> Affine s b c' -> Affine s b (c, c') #

terminal :: Object (Affine s) b => Affine s b (UnitObject (Affine s)) #

fst :: ObjectPair (Affine s) x y => Affine s (x, y) x #

snd :: ObjectPair (Affine s) x y => Affine s (x, y) y #

Num' s => WellPointed (Affine s) Source # 
Instance details

Defined in Data.Function.Affine

Associated Types

type PointObject (Affine s) x :: Constraint #

Methods

globalElement :: ObjectPoint (Affine s) x => x -> Affine s (UnitObject (Affine s)) x #

unit :: CatTagged (Affine s) (UnitObject (Affine s)) #

const :: (Object (Affine s) b, ObjectPoint (Affine s) x) => x -> Affine s b x #

Category (Affine s) Source # 
Instance details

Defined in Data.Function.Affine

Associated Types

type Object (Affine s) o :: Constraint #

Methods

id :: Object (Affine s) a => Affine s a a #

(.) :: (Object (Affine s) a, Object (Affine s) b, Object (Affine s) c) => Affine s b c -> Affine s a b -> Affine s a c #

Num' s => Cartesian (Affine s) Source # 
Instance details

Defined in Data.Function.Affine

Associated Types

type PairObjects (Affine s) a b :: Constraint #

type UnitObject (Affine s) :: Type #

Methods

swap :: (ObjectPair (Affine s) a b, ObjectPair (Affine s) b a) => Affine s (a, b) (b, a) #

attachUnit :: (unit ~ UnitObject (Affine s), ObjectPair (Affine s) a unit) => Affine s a (a, unit) #

detachUnit :: (unit ~ UnitObject (Affine s), ObjectPair (Affine s) a unit) => Affine s (a, unit) a #

regroup :: (ObjectPair (Affine s) a b, ObjectPair (Affine s) b c, ObjectPair (Affine s) a (b, c), ObjectPair (Affine s) (a, b) c) => Affine s (a, (b, c)) ((a, b), c) #

regroup' :: (ObjectPair (Affine s) a b, ObjectPair (Affine s) b c, ObjectPair (Affine s) a (b, c), ObjectPair (Affine s) (a, b) c) => Affine s ((a, b), c) (a, (b, c)) #

EnhancedCat (Affine s) (LinearMap s) Source # 
Instance details

Defined in Data.Function.Affine

Methods

arr :: (Object (LinearMap s) b, Object (LinearMap s) c, Object (Affine s) b, Object (Affine s) c) => LinearMap s b c -> Affine s b c #

EnhancedCat ((->) :: Type -> Type -> Type) (Affine s) Source # 
Instance details

Defined in Data.Function.Affine

Methods

arr :: (Object (Affine s) b, Object (Affine s) c, Object (->) b, Object (->) c) => Affine s b c -> b -> c #

(Atlas x, HasTrie (ChartIndex x), LinearSpace (Needle x), Scalar (Needle x) ~ s, LinearSpace y, Scalar y ~ s, Num' s) => AdditiveGroup (Affine s x y) Source # 
Instance details

Defined in Data.Function.Affine

Methods

zeroV :: Affine s x y #

(^+^) :: Affine s x y -> Affine s x y -> Affine s x y #

negateV :: Affine s x y -> Affine s x y #

(^-^) :: Affine s x y -> Affine s x y -> Affine s x y #

(Atlas x, HasTrie (ChartIndex x), LinearSpace (Needle x), Scalar (Needle x) ~ s, LinearSpace y, Scalar y ~ s, Num' s) => VectorSpace (Affine s x y) Source # 
Instance details

Defined in Data.Function.Affine

Associated Types

type Scalar (Affine s x y) :: Type #

Methods

(*^) :: Scalar (Affine s x y) -> Affine s x y -> Affine s x y #

(Atlas x, HasTrie (ChartIndex x), LinearSpace (Needle x), Scalar (Needle x) ~ s, Manifold y, Scalar (Needle y) ~ s) => AffineSpace (Affine s x y) Source # 
Instance details

Defined in Data.Function.Affine

Associated Types

type Diff (Affine s x y) :: Type #

Methods

(.-.) :: Affine s x y -> Affine s x y -> Diff (Affine s x y) #

(.+^) :: Affine s x y -> Diff (Affine s x y) -> Affine s x y #

(Atlas x, HasTrie (ChartIndex x), LinearSpace (Needle x), Scalar (Needle x) ~ s, Manifold y, Scalar (Needle y) ~ s) => Semimanifold (Affine s x y) Source # 
Instance details

Defined in Data.Function.Affine

Associated Types

type Needle (Affine s x y) :: Type #

type Interior (Affine s x y) :: Type #

Methods

(.+~^) :: Interior (Affine s x y) -> Needle (Affine s x y) -> Affine s x y #

fromInterior :: Interior (Affine s x y) -> Affine s x y #

toInterior :: Affine s x y -> Maybe (Interior (Affine s x y)) #

translateP :: Tagged (Affine s x y) (Interior (Affine s x y) -> Needle (Affine s x y) -> Interior (Affine s x y)) #

(.-~^) :: Interior (Affine s x y) -> Needle (Affine s x y) -> Affine s x y #

semimanifoldWitness :: SemimanifoldWitness (Affine s x y) #

(Atlas x, HasTrie (ChartIndex x), LinearSpace (Needle x), Scalar (Needle x) ~ s, Manifold y, Scalar (Needle y) ~ s) => PseudoAffine (Affine s x y) Source # 
Instance details

Defined in Data.Function.Affine

Methods

(.-~.) :: Affine s x y -> Affine s x y -> Maybe (Needle (Affine s x y)) #

(.-~!) :: Affine s x y -> Affine s x y -> Needle (Affine s x y) #

pseudoAffineWitness :: PseudoAffineWitness (Affine s x y) #

type UnitObject (Affine s) Source # 
Instance details

Defined in Data.Function.Affine

type PointObject (Affine s) x Source # 
Instance details

Defined in Data.Function.Affine

type PointObject (Affine s) x = ()
type Object (Affine s) x Source # 
Instance details

Defined in Data.Function.Affine

type Object (Affine s) x = (Manifold x, Interior x ~ x, Atlas x, LinearSpace (Needle x), Scalar (Needle x) ~ s, HasTrie (ChartIndex x))
type PairObjects (Affine s) a b Source # 
Instance details

Defined in Data.Function.Affine

type PairObjects (Affine s) a b = ()
type Scalar (Affine s x y) Source # 
Instance details

Defined in Data.Function.Affine

type Scalar (Affine s x y) = s
type Diff (Affine s x y) Source # 
Instance details

Defined in Data.Function.Affine

type Diff (Affine s x y) = Affine s x (Needle y)
type Interior (Affine s x y) Source # 
Instance details

Defined in Data.Function.Affine

type Interior (Affine s x y) = Affine s x y
type Needle (Affine s x y) Source # 
Instance details

Defined in Data.Function.Affine

type Needle (Affine s x y) = Affine s x (Needle y)

evalAffine :: forall s x y. (Manifold x, Atlas x, HasTrie (ChartIndex x), Manifold y, s ~ Scalar (Needle x), s ~ Scalar (Needle y)) => Affine s x y -> x -> (y, LinearMap s (Needle x) (Needle y)) Source #

fromOffsetSlope :: forall s x y. (LinearSpace x, Atlas x, HasTrie (ChartIndex x), Manifold y, s ~ Scalar x, s ~ Scalar (Needle y)) => y -> LinearMap s x (Needle y) -> Affine s x y Source #

Misc

lensEmbedding :: forall k s x c. (Num' s, LinearSpace x, LinearSpace c, Object k x, Object k c, Scalar x ~ s, Scalar c ~ s, EnhancedCat k (LinearMap s)) => Lens' x c -> Embedding k c x Source #