| Copyright | (C) 2012-2013 Edward Kmett, | 
|---|---|
| License | BSD-style (see the file LICENSE) | 
| Maintainer | Edward Kmett <ekmett@gmail.com> | 
| Stability | experimental | 
| Portability | non-portable | 
| Safe Haskell | Trustworthy | 
| Language | Haskell98 | 
Linear.V4
Description
4-D Vectors
Documentation
A 4-dimensional vector.
Constructors
| V4 !a !a !a !a | 
Instances
| Monad V4 | |
| Functor V4 | |
| MonadFix V4 | |
| Applicative V4 | |
| Foldable V4 | |
| Traversable V4 | |
| Generic1 V4 | |
| Distributive V4 | |
| Representable V4 | |
| MonadZip V4 | |
| Traversable1 V4 | |
| Foldable1 V4 | |
| Apply V4 | |
| Bind V4 | |
| Additive V4 | |
| Metric V4 | |
| R1 V4 | |
| R2 V4 | |
| R3 V4 | |
| R4 V4 | |
| Trace V4 | |
| Affine V4 | |
| Unbox a => Vector Vector (V4 a) | |
| Unbox a => MVector MVector (V4 a) | |
| Num r => Coalgebra r (E V4) | |
| Eq a => Eq (V4 a) | |
| Fractional a => Fractional (V4 a) | |
| Data a => Data (V4 a) | |
| Num a => Num (V4 a) | |
| Ord a => Ord (V4 a) | |
| Read a => Read (V4 a) | |
| Show a => Show (V4 a) | |
| Ix a => Ix (V4 a) | |
| Generic (V4 a) | |
| Storable a => Storable (V4 a) | |
| Hashable a => Hashable (V4 a) | |
| Unbox a => Unbox (V4 a) | |
| Ixed (V4 a) | |
| Epsilon a => Epsilon (V4 a) | |
| FunctorWithIndex (E V4) V4 | |
| FoldableWithIndex (E V4) V4 | |
| TraversableWithIndex (E V4) V4 | |
| Each (V4 a) (V4 b) a b | |
| Typeable (* -> *) V4 | |
| type Rep1 V4 | |
| type Rep V4 = E V4 | |
| type Diff V4 = V4 | |
| data MVector s (V4 a) = MV_V4 !Int (MVector s a) | |
| type Rep (V4 a) | |
| data Vector (V4 a) = V_V4 !Int (Vector a) | |
| type Index (V4 a) = E V4 | |
| type IxValue (V4 a) = a | 
vector :: Num a => V3 a -> V4 a Source
Convert a 3-dimensional affine vector into a 4-dimensional homogeneous vector.
point :: Num a => V3 a -> V4 a Source
Convert a 3-dimensional affine point into a 4-dimensional homogeneous vector.
normalizePoint :: Fractional a => V4 a -> V3 a Source
Convert 4-dimensional projective coordinates to a 3-dimensional point. This operation may be denoted, euclidean [x:y:z:w] = (x/w, y/w, z/w) where the projective, homogenous, coordinate [x:y:z:w] is one of many associated with a single point (x/w, y/w, z/w).
A space that has at least 1 basis vector _x.
Minimal complete definition
Nothing
class R1 t => R2 t where Source
Minimal complete definition
Nothing
class R2 t => R3 t where Source
Minimal complete definition
Nothing