-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Low-dimensional matrices and vectors for graphics and physics -- -- Low-dimensional matrices and vectors for graphics and physics @package lin-alg @version 0.1.0.2 module Numeric.LinearAlgebra.Vector data Vec4 a Vec4 :: !a -> !a -> !a -> !a -> Vec4 a data Vec3 a Vec3 :: !a -> !a -> !a -> Vec3 a data Vec2 a Vec2 :: !a -> !a -> Vec2 a class Functor v => Vector v vDim :: Vector v => v a -> Int vElement :: Vector v => v a -> Int -> a vIndexOf :: (Vector v, Ord a) => (a -> a -> Bool) -> v a -> Int vZip :: Vector v => (a -> b -> c) -> v a -> v b -> v c vFold :: Vector v => (a -> a -> a) -> v a -> a vNegate :: (Num a, Vector v) => v a -> v a (<+>) :: (Num a, Vector v) => v a -> v a -> v a (<*>) :: (Num a, Vector v) => v a -> v a -> v a (<->) :: (Num a, Vector v) => v a -> v a -> v a () :: (Fractional a, Vector v) => v a -> v a -> v a (<.>) :: (Num a, Vector v) => v a -> v a -> a (*>) :: (Num a, Vector v) => a -> v a -> v a ( v a -> a -> v a len :: (Floating a, Vector v) => v a -> a lenSquared :: (Num a, Vector v) => v a -> a maxVec :: (Ord k, Vector v) => v k -> v k -> v k minVec :: (Ord k, Vector v) => v k -> v k -> v k minComponent :: (Ord k, Vector v) => v k -> k maxComponent :: (Ord k, Vector v) => v k -> k minAbsComponent :: (Num k, Ord k, Vector v) => v k -> k maxAbsComponent :: (Num k, Ord k, Vector v) => v k -> k vIndexOfMinComponent :: (Ord k, Vector v) => v k -> Int vIndexOfMaxComponent :: (Ord k, Vector v) => v k -> Int vIndexOfMinAbsComponent :: (Ord k, Num k, Vector v) => v k -> Int vIndexOfMaxAbsComponent :: (Ord k, Num k, Vector v) => v k -> Int -- | Cross product (<%>) :: Floating a => Vec3 a -> Vec3 a -> Vec3 a unitVector :: (Floating a, Vector v) => v a -> v a tripleProduct :: Floating a => Vec3 a -> Vec3 a -> Vec3 a -> a instance Read a => Read (Vec4 a) instance Show a => Show (Vec4 a) instance Eq a => Eq (Vec4 a) instance Ord a => Ord (Vec4 a) instance Read a => Read (Vec3 a) instance Show a => Show (Vec3 a) instance Eq a => Eq (Vec3 a) instance Ord a => Ord (Vec3 a) instance Read a => Read (Vec2 a) instance Show a => Show (Vec2 a) instance Eq a => Eq (Vec2 a) instance Ord a => Ord (Vec2 a) instance (RealFloat a, Unbox a) => Vector Vector (Vec3 a) instance (RealFloat a, Unbox a) => MVector MVector (Vec3 a) instance (RealFloat a, Unbox a) => Unbox (Vec3 a) instance Functor Vec2 instance Vector Vec2 instance Functor Vec3 instance Vector Vec3 instance Functor Vec4 instance Vector Vec4 module Numeric.LinearAlgebra.OrthoNormalBasis epsilon :: (Ord a, Floating a) => a data ONB a ONB :: Vec3 a -> Vec3 a -> Vec3 a -> ONB a onbU :: ONB a -> Vec3 a onbV :: ONB a -> Vec3 a onbW :: ONB a -> Vec3 a mkFromU :: (Ord a, Floating a) => Vec3 a -> ONB a mkFromV :: (Ord a, Floating a) => Vec3 a -> ONB a mkFromW :: (Ord a, Floating a) => Vec3 a -> ONB a mkFromUV :: Floating a => Vec3 a -> Vec3 a -> ONB a mkFromVU :: Floating a => Vec3 a -> Vec3 a -> ONB a mkFromUW :: Floating a => Vec3 a -> Vec3 a -> ONB a mkFromWU :: Floating a => Vec3 a -> Vec3 a -> ONB a mkFromVW :: Floating a => Vec3 a -> Vec3 a -> ONB a mkFromWV :: Floating a => Vec3 a -> Vec3 a -> ONB a instance Read a => Read (ONB a) instance Show a => Show (ONB a) instance Eq a => Eq (ONB a) instance Ord a => Ord (ONB a) module Numeric.LinearAlgebra.Matrix.Class class Functor m => Matrix m mDim :: Matrix m => m a -> Int mElement :: Matrix m => m a -> Int -> Int -> a mIndexOf :: (Matrix m, Ord a) => (a -> a -> Bool) -> m a -> (Int, Int) mZip :: Matrix m => (a -> b -> c) -> m a -> m b -> m c mFold :: Matrix m => (a -> a -> a) -> m a -> a det :: (Matrix m, Num a) => m a -> a mApply :: Functor f => f (a -> b) -> a -> f b (.+.) :: (Num k, Matrix m) => m k -> m k -> m k (.-.) :: (Num k, Matrix m) => m k -> m k -> m k module Numeric.LinearAlgebra.Matrix.Mat33 data Mat33 a Mat33 :: !a -> !a -> !a -> !a -> !a -> !a -> !a -> !a -> !a -> Mat33 a m00 :: Mat33 a -> !a m01 :: Mat33 a -> !a m02 :: Mat33 a -> !a m10 :: Mat33 a -> !a m11 :: Mat33 a -> !a m12 :: Mat33 a -> !a m20 :: Mat33 a -> !a m21 :: Mat33 a -> !a m22 :: Mat33 a -> !a det33 :: Num a => a -> a -> a -> a -> a -> a -> a -> a -> a -> a instance Read a => Read (Mat33 a) instance Show a => Show (Mat33 a) instance Eq a => Eq (Mat33 a) instance Ord a => Ord (Mat33 a) instance Functor Mat33 instance Matrix Mat33 module Numeric.LinearAlgebra.Matrix.Mat44 data Mat44 a Mat44 :: !a -> !a -> !a -> !a -> !a -> !a -> !a -> !a -> !a -> !a -> !a -> !a -> !a -> !a -> !a -> !a -> Mat44 a m00 :: Mat44 a -> !a m01 :: Mat44 a -> !a m02 :: Mat44 a -> !a m03 :: Mat44 a -> !a m10 :: Mat44 a -> !a m11 :: Mat44 a -> !a m12 :: Mat44 a -> !a m13 :: Mat44 a -> !a m20 :: Mat44 a -> !a m21 :: Mat44 a -> !a m22 :: Mat44 a -> !a m23 :: Mat44 a -> !a m30 :: Mat44 a -> !a m31 :: Mat44 a -> !a m32 :: Mat44 a -> !a m33 :: Mat44 a -> !a det44 :: Num a => Mat44 a -> a inv44 :: Fractional a => Mat44 a -> Mat44 a instance Read a => Read (Mat44 a) instance Show a => Show (Mat44 a) instance Eq a => Eq (Mat44 a) instance Ord a => Ord (Mat44 a) instance Functor Mat44 instance Matrix Mat44 module Numeric.LinearAlgebra.Matrix data Mat44 a data Mat33 a