vect-floating-0.1.0.4: A low-dimensional linear algebra library, operating on the Floating typeclass

Safe HaskellNone
LanguageHaskell98

Data.Vect.Floating.Util.Dim4

Description

Rotation around an arbitrary plane in four dimensions, and other miscellanea. Not very useful for most people, and not re-exported by Data.Vect.

Synopsis

Documentation

structVec4 :: [a] -> [Vec4 a] Source

destructVec4 :: [Vec4 a] -> [a] Source

translate4X :: Num a => a -> Vec4 a -> Vec4 a Source

translate4Y :: Num a => a -> Vec4 a -> Vec4 a Source

translate4Z :: Num a => a -> Vec4 a -> Vec4 a Source

translate4W :: Num a => a -> Vec4 a -> Vec4 a Source

vec4X :: Num a => Vec4 a Source

vec4Y :: Num a => Vec4 a Source

vec4Z :: Num a => Vec4 a Source

vec4W :: Num a => Vec4 a Source

biVector4 :: Num a => Vec4 a -> Vec4 a -> (a, a, a, a, a, a) Source

If (x,y,u,v) is an orthonormal system, then (written in pseudo-code) biVector4 (x,y) = plusMinus (reverse $ biVector4 (u,v)). This is a helper function for the 4 dimensional rotation code. If (x,y,z,p,q,r) = biVector4 a b, then the corresponding antisymmetric tensor is

[  0  r  q  p ]
[ -r  0  z -y ]
[ -q -z  0  x ]
[ -p  y -x  0 ]

biVector4AsTensor :: Num a => Vec4 a -> Vec4 a -> Mat4 a Source

the corresponding antisymmetric tensor

rotate4' :: Floating a => a -> (Normal4 a, Normal4 a) -> Vec4 a -> Vec4 a Source

We assume that the axes are normalized and orthogonal to each other!

rotate4 :: Floating a => a -> (Vec4 a, Vec4 a) -> Vec4 a -> Vec4 a Source

We assume only that the axes are independent vectors.

rotMatrix4' :: Floating a => a -> (Normal4 a, Normal4 a) -> Mat4 a Source

Rotation matrix around a plane specified by two normalized and orthogonal vectors. Intended for multiplication on the right!

rotMatrix4 :: Floating a => a -> (Vec4 a, Vec4 a) -> Mat4 a Source

We assume only that the axes are independent vectors.