lin-alg-0.1.0.2: Low-dimensional matrices and vectors for graphics and physics

Safe HaskellNone

Numeric.LinearAlgebra.Vector

Synopsis

Documentation

data Vec4 a Source

Constructors

Vec4 !a !a !a !a 

Instances

Functor Vec4 
Vector Vec4 
Eq a => Eq (Vec4 a) 
Ord a => Ord (Vec4 a) 
Read a => Read (Vec4 a) 
Show a => Show (Vec4 a) 

data Vec3 a Source

Constructors

Vec3 !a !a !a 

Instances

Functor Vec3 
Vector Vec3 
(RealFloat a, Unbox a) => Vector Vector (Vec3 a) 
(RealFloat a, Unbox a) => MVector MVector (Vec3 a) 
Eq a => Eq (Vec3 a) 
Ord a => Ord (Vec3 a) 
Read a => Read (Vec3 a) 
Show a => Show (Vec3 a) 
(RealFloat a, Unbox a) => Unbox (Vec3 a) 

data Vec2 a Source

Constructors

Vec2 !a !a 

Instances

Functor Vec2 
Vector Vec2 
Eq a => Eq (Vec2 a) 
Ord a => Ord (Vec2 a) 
Read a => Read (Vec2 a) 
Show a => Show (Vec2 a) 

class Functor v => Vector v whereSource

Methods

vDim :: v a -> IntSource

vElement :: v a -> Int -> aSource

vIndexOf :: Ord a => (a -> a -> Bool) -> v a -> IntSource

vZip :: (a -> b -> c) -> v a -> v b -> v cSource

vFold :: (a -> a -> a) -> v a -> aSource

vFold is foldl1'

vNegate :: (Num a, Vector v) => v a -> v aSource

(<+>) :: (Num a, Vector v) => v a -> v a -> v aSource

(<*>) :: (Num a, Vector v) => v a -> v a -> v aSource

(<->) :: (Num a, Vector v) => v a -> v a -> v aSource

(</>) :: (Fractional a, Vector v) => v a -> v a -> v aSource

(<.>) :: (Num a, Vector v) => v a -> v a -> aSource

(*>) :: (Num a, Vector v) => a -> v a -> v aSource

(</) :: (Fractional a, Vector v) => v a -> a -> v aSource

len :: (Floating a, Vector v) => v a -> aSource

lenSquared :: (Num a, Vector v) => v a -> aSource

maxVec :: (Ord k, Vector v) => v k -> v k -> v kSource

minVec :: (Ord k, Vector v) => v k -> v k -> v kSource

minComponent :: (Ord k, Vector v) => v k -> kSource

maxComponent :: (Ord k, Vector v) => v k -> kSource

minAbsComponent :: (Num k, Ord k, Vector v) => v k -> kSource

maxAbsComponent :: (Num k, Ord k, Vector v) => v k -> kSource

(<%>) :: Floating a => Vec3 a -> Vec3 a -> Vec3 aSource

Cross product

unitVector :: (Floating a, Vector v) => v a -> v aSource

tripleProduct :: Floating a => Vec3 a -> Vec3 a -> Vec3 a -> aSource