linear-0.4.2.1: Linear Algebra

Safe HaskellSafe-Inferred

Linear.V4

Synopsis

Documentation

data V4 a Source

A 4-dimensional vector.

Constructors

V4 a a a a 

Instances

Monad V4 
Functor V4 
Typeable1 V4 
Applicative V4 
Foldable V4 
Traversable V4 
Distributive V4 
Representable V4 
Metric V4 
R2 V4 
R3 V4 
R4 V4 
Eq a => Eq (V4 a) 
(Num (V4 a), Fractional a) => Fractional (V4 a) 
(Typeable (V4 a), Data a) => Data (V4 a) 
Num a => Num (V4 a) 
(Eq (V4 a), Ord a) => Ord (V4 a) 
Read a => Read (V4 a) 
Show a => Show (V4 a) 
Storable a => Storable (V4 a) 
(Num (V4 a), Epsilon a) => Epsilon (V4 a) 

vector :: Num a => V3 a -> V4 aSource

Convert a 3-dimensional affine vector into a 4-dimensional homogeneous vector.

point :: Num a => V3 a -> V4 aSource

Convert a 3-dimensional affine point into a 4-dimensional homogeneous vector.

class R2 t whereSource

A space that distinguishes 2 orthogonal basis vectors _x and _y, but may have more.

Methods

_x :: Functor f => (a -> f a) -> t a -> f (t a)Source

_y :: Functor f => (a -> f a) -> t a -> f (t a)Source

_xy :: Functor f => (V2 a -> f (V2 a)) -> t a -> f (t a)Source

Instances

R2 V2 
R2 V3 
R2 V4 

class R2 t => R3 t whereSource

A space that distinguishes 3 orthogonal basis vectors: _x, _y, and _z. (It may have more)

Methods

_z :: Functor f => (a -> f a) -> t a -> f (t a)Source

_xyz :: Functor f => (V3 a -> f (V3 a)) -> t a -> f (t a)Source

Instances

R3 V3 
R3 V4 

class R3 t => R4 t whereSource

A space that distinguishes orthogonal basis vectors _x, _y, _z, _w. (It may have more.)

Methods

_w :: Functor f => (a -> f a) -> t a -> f (t a)Source

_xyzw :: Functor f => (V4 a -> f (V4 a)) -> t a -> f (t a)Source

Instances

R4 V4