Copyright | (c) Antony Courtney and Henrik Nilsson Yale University 2003 |
---|---|

License | BSD-style (see the LICENSE file in the distribution) |

Maintainer | ivan.perez@keera.co.uk |

Stability | provisional |

Portability | non-portable (GHC extensions) |

Safe Haskell | Safe |

Language | Haskell98 |

Affine space type relation.

## Synopsis

- class (Floating a, VectorSpace v a) => AffineSpace p v a | p -> v, v -> a where

# Documentation

class (Floating a, VectorSpace v a) => AffineSpace p v a | p -> v, v -> a where #

Affine Space type relation.

An affine space is a set (type) `p`

, and an associated vector space `v`

over
a field `a`

.

Origin of the affine space.

(.+^) :: p -> v -> p infix 6 #

Addition of affine point and vector.

(.-^) :: p -> v -> p infix 6 #

Subtraction of affine point and vector.

(.-.) :: p -> p -> v infix 6 #

Subtraction of two points in the affine space, giving a vector.

Distance between two points in the affine space, same as the `norm`

of
the vector they form (see '(.-.)'.

## Instances

RealFloat a => AffineSpace (Point3 a) (Vector3 a) a # | |

RealFloat a => AffineSpace (Point2 a) (Vector2 a) a # | |