vect-0.4.6: A low-dimensional linear algebra library, tailored to computer graphics.

Data.Vect.Float.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

biVector4 :: Vec4 -> Vec4 -> (Float, Float, Float, Float, Float, Float)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 ]
```

the corresponding antisymmetric tensor

rotate4' :: Float -> (Normal4, Normal4) -> Vec4 -> Vec4Source

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

rotate4 :: Float -> (Vec4, Vec4) -> Vec4 -> Vec4Source

We assume only that the axes are independent vectors.

rotMatrix4' :: Float -> (Normal4, Normal4) -> Mat4Source

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

rotMatrix4 :: Float -> (Vec4, Vec4) -> Mat4Source

We assume only that the axes are independent vectors.