Safe Haskell | None |
---|---|
Language | Haskell2010 |
- (<+>) :: Manifold m => (c :#: m) -> (c :#: m) -> c :#: m
- (.>) :: Manifold m => Double -> (c :#: m) -> c :#: m
- (<->) :: Manifold m => (c :#: m) -> (c :#: m) -> c :#: m
- (/>) :: Manifold m => Double -> (c :#: m) -> c :#: m
- meanPoint :: Manifold m => [c :#: m] -> c :#: m
- class (Dual (Dual c) ~ c) => Primal c where
- type Dual c :: *
- (<.>) :: (c :#: m) -> (Dual c :#: m) -> Double
Vector Spaces
(<+>) :: Manifold m => (c :#: m) -> (c :#: m) -> c :#: m infixl 6 Source
Vector addition of points on a manifold.
(.>) :: Manifold m => Double -> (c :#: m) -> c :#: m infix 7 Source
Scalar multiplication of points on a manifold.
(<->) :: Manifold m => (c :#: m) -> (c :#: m) -> c :#: m infixl 6 Source
Vector subtraction of points on a manifold.
(/>) :: Manifold m => Double -> (c :#: m) -> c :#: m infix 7 Source
Scalar division of points on a manifold.
meanPoint :: Manifold m => [c :#: m] -> c :#: m Source
Finds the midpoint amongst a set of vectors in a convex set.
Dual Spaces
class (Dual (Dual c) ~ c) => Primal c Source
Primal
charts have a Dual
coordinate system. The Dual
coordinate
system is the system which determines the dual basis of the dual vector
space via the restriction that the inner product <.>
be the dot product.
Since finite dimensional vector spaces are isomorphic to their dual spaces
through the dual basis, vector space duality is handled purely at the level
of coordinates in Goal -- that is, Primal
and Dual
coordinates are
considered different ways of describing the same fundamental objects. In
practice, encoding this relationship purely at the level of Charts saves a
great deal of computational effort.