Detailed Derivation and Generalization of Cayley-Dickson Construction

A candidate for Cayley-Dickson multiplication will have a general form (a,b)(c,d) = (ac+X,Y+Z); in particular, (a,0)(c,0) = (ac,0) so as to embed the lower-dimensional algebra naturally. The terms X, Y, and Z satisfy: A bitmask F (with bits F8...F0; F0 least significant) is useful to organize the analysis. Assign a yes/no value to the following possibilities:
1. bd vs. db (F0 = 0 or 1 respectively); 2. b conjugated in X (⇔ F1 = 1); 3. d conjugated in X (⇔ F2 = 1);

4. ad vs. da (F3 = 0 or 1 respectively); 5. a conjugated in Y (⇔ F4 = 1); 6. d conjugated in Y (⇔ F5 = 1);

7. bc vs. cb (F6 = 0 or 1 respectively); 8. b conjugated in Z (⇔ F7 = 1); 9. c conjugated in Z (⇔ F8 = 1),

so e.g. F = 001010011 = 0x53 ⇔ (a,b)(c,d) = (ac - db*, a*d + cb).

Requirement that (AC)* = C*A*

As a first restriction, all candidates are assumed to satisfy (AC)* = C*A*, with A = (a,b) and C = (c,d); moreover, by definition (a,b)* = (a*,-b). Thus

[(a, b)(c, d)]* = (ac + X, Y + Z)* = (c*a* + X*, -Y -Z), and

[(a, b)(c, d)]* = (c, d)*(a, b)* = (c*, -d)(a*, -b) = (c*a* + X', Y' + Z'),

where X' is obtained from X by the substitutions b ↔ -d; Y' from Z (and Z' from Y) by c ↔ a*, b ↔ -d; then requiring X* = X' and -Y - Z = Y' + Z'.

For example, let X = -db*, so X' = -(-b)(-d)* = -bd*, and X* = (-db*)* = -bd*, i.e. a match. Note that exactly one of b, d must be complex conjugated in X for X* and X' to be equal, narrowing the options to:

X is one of -bd*, -b*d, -db*, -d*b.


Another example: Y = a*d, Z = cb, so Y' = c(-b), Z' = a*(-d); then -(Y+Z) = Y'+Z', as desired. A strong link is shown to exist between the forms of Y and Z: exactly one of a* or c* occurs between the two, and exactly one reversal of factors, and d* ⇔ b*, so that choice of one immediately determines choice of the other; hence

Y+Z is one of (ad+c*b), (a*d+cb), (da+bc*), (da*+bc), (ad*+c*b*), (a*d*+cb*), (d*a+b*c*), or (d*a*+b*c).


It remains to apply the 32 possible combinations to the quaternions and inspect the results, as summarized below; click the associated link to see details. Some general features are worth noting first.

General Structure of the Doubled Multiplication Table

The Cayley-Dickson doubling method will naturally extend an XOR-based 2n-dimensional multiplication table to an XOR-based 2n+1-dimensional multiplication, with the original 2n-dimensional table occupying the upper left corner of the new table. It is instructive to split the new part of the 2n+1-dimensional table into 9 distinct subsections, as shown in the following example:
e0 e1 e2 e3 e4 e5 e6 e7
e0 e0 e1 e2 e3 e4 e5 e6 e7
e1 e1 -e0 e3 -e2 -e5 e4 e7 -e6
e2 e2 -e3 -e0 e1 -e6 -e7 e4 e5
e3 e3 e2 -e1 -e0 -e7 e6 -e5 e4
e4 e4 e5 e6 e7 -e0 -e1 -e2 -e3
e5 e5 -e4 e7 -e6 e1 -e0 e3 -e2
e6 e6 -e7 -e4 e5 e2 -e3 -e0 e1
e7 e7 e6 -e5 -e4 e3 e2 -e1 -e0

The 9 sections:

  1. the 9:00 arm of the central cross (red); (0,1)(ei,0)
  2. the 12:00 arm of the central cross (green); (ei,0)(0,1)
  3. the 3:00 arm of the central cross (yellow); (0,1)(0,ei)
  4. the 6:00 arm of the central cross (light blue); (0,ei)(0,1)
  5. the lower left 3x3 square, exclusive of diagonal (gray); (0,ei)(ej,0) i ≠ j
  6. the upper right 3x3 square, exclusive of diagonal (brownish); (ei,0)(0,ej) i ≠ j
  7. the lower right 3x3 square (diagonal elements fixed to -e0); (0,ei)(0,ej)
  8. the diagonal of the lower left 3x3 square (dark blue); (0,ei)(ei,0)
  9. the diagonal of the upper right 3x3 square (magenta); (ei,0)(0,ei)

Assignment of signs in these various sections can be related directly to combinations of bits in F; by region number as above:
  1. (0,1)(ei,0) = (0, (-1)F8ei)
  2. (ei,0)(0,1) = (0, (-1)F5ei)
  3. (0,1)(0,ei) = (-(-1)F2ei, 0)
  4. (0,ei)(0,1) = (-(-1)F1ei, 0)
  5. (0,ei)(ej,0) = (0, (-1)F6(-1)F7(-1)F8eiej) i ≠ j
  6. (ei,0)(0,ej) = (0, (-1)F3(-1)F4(-1)F5eiej) i ≠ j
  7. (0,ei)(0,ej) = (-(-1)F0(-1)F1(-1)F2eiej, 0) i ≠ j
  8. (ei,0)(0,ei) = (0, -(-1)F4(-1)F5)
  9. (0,ei)(ei,0) = (0, -(-1)F7(-1)F8)

Summary of Results

A computer program embodying the restrictions discussed above (e.g. those imposed by (AC)* = C*A*) produced the following results for values of F that met the restrictions. The list is formatted ("#" is just order in the list, F is in hexadecimal) as

# F: (formula) description

To view the actual multiplication table associated with a formula, click the link.

1 1a: (ac - b*d, da* + bc)twisted octonions, XOR/3a representation
2 1b: (ac - db*, da* + bc)e1e6=e7 ⇒ ⇐ e6e7 = -e1
3 1c: (ac - bd*, da* + bc)e1e4=-e5 ⇒ ⇐ e4e5 = e1
4 1d: (ac - d*b, da* + bc)e1e4=-e5 ⇒ ⇐ e4e5 = e1
5 52: (ac - b*d, a*d + cb)e1e6=-e7 ⇒ ⇐ e6e7 = e1
6 53: (ac - db*, a*d + cb)true octonions, XOR/6e (i.e. this is the usual Cayley-Dickson formula
7 54: (ac - bd*, a*d + cb)e1e4=-e5 ⇒ ⇐ e4e5 = e1
8 55: (ac - d*b, a*d + cb)e1e4=-e5 ⇒ ⇐ e4e5 = e1
9 ba: (ac - b*d, d*a* + b*c)e1e4=-e5 ⇒ ⇐ e1e5 = -e4
10 bb: (ac - db*, d*a* + b*c)e1e4=-e5 ⇒ ⇐ e1e5 = -e4
11 bc: (ac - bd*, d*a* + b*c)e1e4=-e5 ⇒ ⇐ e1e5 = -e4
12 bd: (ac - d*b, d*a* + b*c)e1e4=-e5 ⇒ ⇐ e1e5 = -e4
13 f2: (ac - b*d, a*d* + cb*)e1e4=-e5 ⇒ ⇐ e1e5 = -e4
14 f3: (ac - db*, a*d* + cb*)e1e4=-e5 ⇒ ⇐ e1e5 = -e4
15 f4: (ac - bd*, a*d* + cb*)e1e4=-e5 ⇒ ⇐ e1e5 = -e4
16 f5: (ac - d*b, a*d* + cb*)e1e4=-e5 ⇒ ⇐ e1e5 = -e4
17 10a: (ac - b*d, da + bc*)e1e4=e5 ⇒ ⇐ e4e5 = -e1
18 10b: (ac - db*, da + bc*)e1e4=e5 ⇒ ⇐ e4e5 = -e1
19 10c: (ac - bd*, da + bc*)e1e6=-e7 ⇒ ⇐ e6e7 = e1
20 10d: (ac - d*b, da + bc*)true octonions, XOR/0x44 (Moreno's variant C-D)
21 142: (ac - b*d, ad + c*b)e1e4=e5 ⇒ ⇐ e4e5 = -e1
22 143: (ac - db*, ad + c*b)e1e4=e5 ⇒ ⇐ e4e5 = -e1
23 144: (ac - bd*, ad + c*b)twisted octonions, XOR/0x10 representation (2nd new variant of C-D)
24 145: (ac - d*b, ad + c*b)e1e6=e7 ⇒ ⇐ e6e7 = -e1
25 1aa: (ac - b*d, d*a + b*c*)e1e4=e5 ⇒ ⇐ e1e5 = e4
26 1ab: (ac - db*, d*a + b*c*)e1e4=e5 ⇒ ⇐ e1e5 = e4
27 1ac: (ac - bd*, d*a + b*c*)e1e4=e5 ⇒ ⇐ e1e5 = e4
28 1ad: (ac - d*b, d*a + b*c*)e1e4=e5 ⇒ ⇐ e1e5 = e4
29 1e2: (ac - b*d, ad* + c*b*)e1e4=e5 ⇒ ⇐ e1e5 = e4
30 1e3: (ac - db*, ad* + c*b*)e1e4=e5 ⇒ ⇐ e1e5 = e4
31 1e4: (ac - bd*, ad* + c*b*)e1e4=e5 ⇒ ⇐ e1e5 = e4
32 1e5: (ac - d*b, ad* + c*b*)e1e4=e5 ⇒ ⇐ e1e5 = e4