Portability | non-portable |
---|---|
Stability | experimental |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Safe Haskell | Trustworthy |
4-D Vectors
Documentation
A 4-dimensional vector.
V4 !a !a !a !a |
Monad V4 | |
Functor V4 | |
Typeable1 V4 | |
MonadFix V4 | |
Applicative V4 | |
Foldable V4 | |
Traversable V4 | |
Generic1 V4 | |
Distributive V4 | |
Representable V4 | |
Traversable1 V4 | |
Foldable1 V4 | |
Apply V4 | |
Bind V4 | |
MonadZip 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) | |
Hashable a => Hashable (V4 a) | |
Storable a => Storable (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 |
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.
normalizePoint :: Fractional a => V4 a -> V3 aSource
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
.