linear-vect-0.1.1.0: A low-dimensional linear algebra library, operating on the Num typeclass

Safe HaskellNone
LanguageHaskell2010

Linear.Vect

Synopsis

Documentation

data V2 a Source

Constructors

V2 !a !a 

Instances

HasV2 V2 
Floating a => Norm a V2 
Num a => DotProd a V2 
Num a => Vector a V2 
Num a => Extend a V2 V4 
Num a => Extend a V2 V3 
Floating a => UnitVector a V2 Normal2 
Fractional a => Projective a V2 M2 Ortho2 M3 Proj3 
Num a => Determinant a (V2 a, V2 a) 
Read a => Read (V2 a) 
Show a => Show (V2 a) 
(Num a, Storable a) => Storable (V2 a) 
(Num a, Random a) => Random (V2 a) 
Num a => Dimension (V2 a) 
Num a => Pointwise (V2 a) 
Num a => AbelianGroup (V2 a) 
Num a => Tensor (M2 a) (V2 a) 
Num a => Diagonal (V2 a) (M2 a) 
Fractional a => RightModule (V2 a) (M2 a) 
Num a => LeftModule (M2 a) (V2 a) 

data V3 a Source

Constructors

V3 !a !a !a 

Instances

HasV3 V3 
HasV2 V3 
Floating a => Norm a V3 
Num a => DotProd a V3 
Num a => Vector a V3 
Num a => Extend a V3 V4 
Num a => Extend a V2 V3 
Floating a => UnitVector a V3 Normal3 
Fractional a => Projective a V3 M3 Ortho3 M4 Proj4 
Num a => Determinant a (V3 a, V3 a, V3 a) 
Read a => Read (V3 a) 
Show a => Show (V3 a) 
(Num a, Storable a) => Storable (V3 a) 
(Num a, Random a) => Random (V3 a) 
Num a => Dimension (V3 a) 
Num a => Pointwise (V3 a) 
Num a => CrossProd (V3 a) 
Num a => AbelianGroup (V3 a) 
Num a => Tensor (M3 a) (V3 a) 
Num a => Diagonal (V3 a) (M3 a) 
Fractional a => RightModule (V3 a) (M3 a) 
Num a => LeftModule (M3 a) (V3 a) 

data V4 a Source

Constructors

V4 !a !a !a !a 

Instances

HasV4 V4 
HasV3 V4 
HasV2 V4 
Floating a => Norm a V4 
Num a => DotProd a V4 
Num a => Vector a V4 
Num a => Extend a V3 V4 
Num a => Extend a V2 V4 
Floating a => UnitVector a V4 Normal4 
Read a => Read (V4 a) 
Show a => Show (V4 a) 
(Num a, Storable a) => Storable (V4 a) 
(Num a, Random a) => Random (V4 a) 
Num a => Dimension (V4 a) 
Num a => Pointwise (V4 a) 
Num a => AbelianGroup (V4 a) 
Num a => Tensor (M4 a) (V4 a) 
Num a => Diagonal (V4 a) (M4 a) 
Num a => RightModule (V4 a) (M4 a) 
Num a => LeftModule (M4 a) (V4 a) 

data Normal2 a Source

The assumption when dealing with these is always that they are of unit length. Also, interpolation works differently.

Instances

data Normal3 a Source

Instances

data Normal4 a Source

Instances

mkV2 :: (a, a) -> V2 a Source

mkV3 :: (a, a, a) -> V3 a Source

mkV4 :: (a, a, a, a) -> V4 a Source

class HasV2 v Source

Minimal complete definition

getV2

Instances

class HasV3 v Source

Minimal complete definition

getV3

Instances

class HasV4 v Source

Minimal complete definition

getV4

Instances

_x :: V2 a -> a Source

_y :: V2 a -> a Source

_z :: V3 a -> a Source

_w :: V4 a -> a Source