simple-affine-space-0.2.1: A simple library for affine and vector spaces.
Copyright(c) Antony Courtney and Henrik Nilsson Yale University 2003
LicenseBSD-style (see the LICENSE file in the distribution)
Maintainerivan.perez@keera.co.uk
Stabilityprovisional
Portabilitynon-portable (GHC extensions)
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.AffineSpace

Description

Affine space type relation.

Synopsis

Documentation

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

Affine Space type relation.

An affine space is a set (type) p, and an associated vector space v over a field a.

Minimal complete definition

origin, (.+^), (.-.)

Methods

origin :: p Source #

Origin of the affine space.

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

Addition of affine point and vector.

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

Subtraction of affine point and vector.

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

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

distance :: p -> p -> a Source #

Distance between two points in the affine space, same as the norm of the vector they form (see (.-.).

Instances

Instances details
RealFloat a => AffineSpace (Point2 a) (Vector2 a) a Source # 
Instance details

Defined in Data.Point2

Methods

origin :: Point2 a Source #

(.+^) :: Point2 a -> Vector2 a -> Point2 a Source #

(.-^) :: Point2 a -> Vector2 a -> Point2 a Source #

(.-.) :: Point2 a -> Point2 a -> Vector2 a Source #

distance :: Point2 a -> Point2 a -> a Source #

RealFloat a => AffineSpace (Point3 a) (Vector3 a) a Source # 
Instance details

Defined in Data.Point3

Methods

origin :: Point3 a Source #

(.+^) :: Point3 a -> Vector3 a -> Point3 a Source #

(.-^) :: Point3 a -> Vector3 a -> Point3 a Source #

(.-.) :: Point3 a -> Point3 a -> Vector3 a Source #

distance :: Point3 a -> Point3 a -> a Source #