Section9.56

]>
Book Contents Previous Section 9.55 None Next Section 9.57 OneDimensionalArray Book Index

## 9.56 Octonion

The Octonions, also called the Cayley-Dixon algebra, defined over a commutative ring are an eight-dimensional non-associative algebra. Their construction from quaternions is similar to the construction of quaternions from complex numbers (see QuaternionXmpPage ).

As Octonion creates an eight-dimensional algebra, you have to give eight components to construct an octonion.

oci1 := octon(1,2,3,4,5,6,7,8)

1+2 i+3 j+4 k+5 E+6 I+7 J+8 K

Type: Octonion Integer
oci2 := octon(7,2,3,-4,5,6,-7,0)

7+2 i+3 j-4 k+5 E+6 I-7 J

Type: Octonion Integer

Or you can use two quaternions to create an octonion.

oci3 := octon(quatern(-7,-12,3,-10), quatern(5,6,9,0))

-7-12 i+3 j-10 k+5 E+6 I+9 J

Type: Octonion Integer

You can easily demonstrate the non-associativity of multiplication.

(oci1 * oci2) * oci3 - oci1 * (oci2 * oci3)

2696 i-2928 j-4072 k+16 E-1192 I+832 J+2616 K

Type: Octonion Integer

As with the quaternions, we have a real part, the imaginary parts i, j, k, and four additional imaginary parts E, I, J and K. These parts correspond to the canonical basis (1,i,j,k,E,I,J,K).

For each basis element there is a component operation to extract the coefficient of the basis element for a given octonion.

[real oci1, imagi oci1, imagj oci1, imagk oci1, imagE oci1, imagI oci1, imagJ oci1, imagK oci1]

[1, 2, 3, 4, 5, 6, 7, 8]

Type: List PositiveInteger

A basis with respect to the quaternions is given by (1,E). However, you might ask, what then are the commuting rules? To answer this, we create some generic elements.

We do this in Axiom by simply changing the ground ring from Integer to Polynomial Integer.

q : Quaternion Polynomial Integer := quatern(q1, qi, qj, qk)

q1+qi i+qj j+qk k

Type: Quaternion Polynomial Integer
E : Octonion Polynomial Integer:= octon(0,0,0,0,1,0,0,0)

E

Type: Octonion Polynomial Integer

Note that quaternions are automatically converted to octonions in the obvious way.

q * E

q1 E+qi I+qj J+qk K

Type: Octonion Polynomial Integer
E * q

q1 E-qi I-qj J-qk K

Type: Octonion Polynomial Integer
q * 1$(Octonion Polynomial Integer)

q1+qi i+qj j+qk k

Type: Octonion Polynomial Integer
1$(Octonion Polynomial Integer) * q

q1+qi i+qj j+qk k

Type: Octonion Polynomial Integer

Finally, we check that the normnormOctonion, defined as the sum of the squares of the coefficients, is a multiplicative map.

o : Octonion Polynomial Integer := octon(o1, oi, oj, ok, oE, oI, oJ, oK)

o1+oi i+oj j+ok k+oE E+oI I+oJ J+oK K

Type: Octonion Polynomial Integer
norm o

ok 2+oj 2+oi 2+oK 2+oJ 2+oI 2+oE 2+o1 2

Type: Polynomial Integer
p : Octonion Polynomial Integer := octon(p1, pi, pj, pk, pE, pI, pJ, pK)

p1+pi i+pj j+pk k+pE E+pI I+pJ J+pK K

Type: Octonion Polynomial Integer

Since the result is 0, the norm is multiplicative.

norm(o*p)-norm(p)*norm(o)

0

Type: Polynomial Integer
Book Contents Previous Section 9.55 None Next Section 9.57 OneDimensionalArray Book Index