vector-space-0.8.6: Vector & affine spaces, linear maps, and derivatives

Stability experimental conal@conal.net, andygill@ku.edu None

Data.AffineSpace

Description

Affine spaces.

Synopsis

# Documentation

class AdditiveGroup (Diff p) => AffineSpace p whereSource

Associated Types

type Diff p Source

Associated vector space

Methods

(.-.) :: p -> p -> Diff pSource

Subtract points

(.+^) :: p -> Diff p -> pSource

Point plus vector

Instances

 AffineSpace Double AffineSpace Float AffineSpace CFloat AffineSpace CDouble (AdditiveGroup (Diff (Ratio a)), Integral a) => AffineSpace (Ratio a) (AdditiveGroup (Diff (a -> p)), AffineSpace p) => AffineSpace (a -> p) (AdditiveGroup (Diff (p, q)), AffineSpace p, AffineSpace q) => AffineSpace (p, q) (AdditiveGroup (Diff (p, q, r)), AffineSpace p, AffineSpace q, AffineSpace r) => AffineSpace (p, q, r)

(.-^) :: AffineSpace p => p -> Diff p -> pSource

Point minus vector

distanceSq :: (AffineSpace p, v ~ Diff p, InnerSpace v) => p -> p -> Scalar vSource

Square of the distance between two points. Sometimes useful for efficiency. See also `distance`.

distance :: (AffineSpace p, v ~ Diff p, InnerSpace v, s ~ Scalar v, Floating (Scalar v)) => p -> p -> sSource

Distance between two points. See also `distanceSq`.

alerp :: (AffineSpace p, VectorSpace (Diff p)) => p -> p -> Scalar (Diff p) -> pSource

Affine linear interpolation. Varies from `p` to `p'` as `s` varies from 0 to 1. See also `lerp` (on vector spaces).