goal-geometry-0.1: Scientific computing on geometric objects

Safe HaskellNone
LanguageHaskell2010

Goal.Geometry.Linear

Contents

Description

The Linear module provides the tools for treating a given Manifold as a linear space.

Synopsis

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.

Associated Types

type Dual c :: * Source

(<.>) :: (c :#: m) -> (Dual c :#: m) -> Double infix 7 Source

<.> is the inner product between a dual pair of Points. The defining property of Dual coordinate systems is that the inner product can be expressed as a dot product.