You are looking at historical revision 4026 of this page. It may differ significantly from its current revision.

## Documentation for the SO(3,1) egg

### Introduction

The SO31 egg provides functions to manipulate elements of the Lorentz group in four dimensions, commonly denoted SO(3,1). The group elements can be represented by either the standard 4x4 matrices or by six parameters.

Note that the egg provides a `syntax-case` module named SO31, which must be `import`ed into the current namespace before any of the listed functions become available.

The parameterization used by the egg is:

vx, vy, vz, x, y, z :-> M = Bx(vx)*By(vy)*Bz(vz)*Rx(x)*Ry(y)*Rz(z),

where the `Ri` are the usual rotation matrices in terms of the angles `x`,`y`,`z`, and the `Bi` are the usual boost matrices, expressed in terms of the rapidity `vi`.

### Examples

#### Rapidity is additive

The following example composes two boosts in the x-direction with rapidity `1.0`

(use syntax-case) (use SO31) (import SO31) (let((p (f64vector 1 0 0 0 0 0))) ; Boost in x direction w/rapidity 1 (params-compose p p)) ; => close to '#f64(2 0 0 0 0 0) because the rapidity adds