Kodama's home / tips.

# Quaternion/Octonion class for ruby.

Download:
quaternion.rb,
octonion.rb.

See also
Ruby
and
Ruby Application Archives.
## Quaternion or Hamilton number

Typical Hamilton number q is of the form q = a + b i + c j + d k.
This is known as Quaternion.
Bases i j k behaves as follows.

i^2 = j^2 = k^2 = -1,

i j = k, j k = i, k i = j,

j i = -k, k j = -i, i k = -j.

Quaternion numbers are not Commutative.
We can think Quaternions as 4-D space over Real numbers,
and 2-D space over Complex numbers as q = (a + b i) + (c + d i)j.

Quaternion is used to describe rotation in 3-D space.
Quaternion with no real part v = b i + c j + d k
is called "vector quaternion", and 3-D space.
For a vector v and a Quaternion q = |q|(cos t/2 + u sin t/2),
q v q^(-1) is a vector v t-rotated along u.

D4 lattice is lattice points of Quaternion q = a + b i + c j + d k as follows.

(1) a,b,c,d are all integer, or

(2) a,b,c,d are all half-integer.

D4 is sub-ring of Quaternion with GCD.
(Ring means a space with +, - and *.)

## Octonion or Cayley number

Typical Cayley number o is of the form
o = a + b i1 + c i2 + d i3 + e i4 + f i5 + g i6 + h i7.
This is known as Octonion.
Each of the Cayley triples (123) (145) (176) (246) (257) (347) (365)
behaves like the Quaternions (i j k).

Octonion numbers are not Associative and not Commutative.
Octonion is 8-D space over Real number,
4-D space over Complex number,
and 2-D space over Quaternion number as follows.

o=a + b i1 + c i2 + d i3 + e i4 + f i5 + g i6 + h i7

=a + b i + (c + d i) i2 + (e + f i) i4 + (g - h i)i6

=(a + b i1 + c i2 + d i3) + (e + f i1+ g i2 + h i3)i4.

Octonion is used to describe rotation in 7-D space.

Kodama's home / tips.