linear-0.6.1: Linear Algebra

Portability non-portable experimental Edward Kmett None

Linear.V4

Description

4-D Vectors

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 Metric V4 Core 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) (Ord (V4 a), Ix a) => Ix (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

````>>> ````V2 1 2 ^._x
```1
```
````>>> ````V2 1 2 & _x .~ 3
```V2 3 2
```

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

````>>> ````V2 1 2 ^._y
```2
```
````>>> ````V2 1 2 & _y .~ 3
```V2 1 3
```

_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