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

Safe HaskellNone

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 aSource

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

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

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

vec4X :: Num a => Vec4 aSource

vec4Y :: Num a => Vec4 aSource

vec4Z :: Num a => Vec4 aSource

vec4W :: Num a => Vec4 aSource

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 aSource

the corresponding antisymmetric tensor

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

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

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

We assume only that the axes are independent vectors.

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

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 aSource

We assume only that the axes are independent vectors.