This post will present a way of multiplying octonions that’s easy to remember.

Please note that there are varying conventions for how to define multiplication for octonions [1].

## Octonions

The complex numbers have one imaginary unit *i*, and the quaternions have three: *i*, *j*, and *k*. The octonions have seven, and so it makes sense to switch over to subscripts rather than venturing further out into the alphabet. Besides, numerical indices will be useful for reasons we’ll see shortly.

Let *e*_{0} = 1 and let *e*_{1} through *e*_{7} be the imaginary units for octonions. Then the *e*‘s form a basis for ℝ^{8}. The octonions are ℝ^{8} with a product that distributes over addition, but the product is not commutative or associative.

Multiplication is determined by how the basis elements multiply, and there are multiple ways of presenting these multiplication rules, the simplest being to write down a multiplication table. Here I’ll present the way I find easiest to remember [2].

## Multiplication rules

The squares of each of the imaginary units *e*_{1} through *e*_{7} are equal to −1, as you’d expect based on experience with complex numbers and quaternions. You can derive the rest of the multiplication facts from

*e*_{1} *e*_{2} = *e*_{4}

and two simple rules.

**The first rule** is that the equation above holds when you shift the indices mod 7.

*e*_{1} *e*_{2} = *e*_{4
}*e*_{2} *e*_{3} = *e*_{5}

*e*_{3} *e*_{4} = *e*_{6}

*e*_{4} *e*_{5} = *e*_{7}

*e*_{5} *e*_{6} = *e*_{1}

*e*_{6} *e*_{7} = *e*_{2}

*e*_{7} *e*_{1} = *e*_{3}

**The second rule** is that each of the triplets of units above behave analogous to *i*, *j*, and *k* in quaternions. That is, when you take a triple like (*e*_{2}, *e*_{3}, *e*_{5}), rotations don’t flip the sign but swapping adjacent elements does. That is,

*e*_{2} *e*_{3} = *e*_{5}

*e*_{5} *e*_{2} = *e*_{3}

*e*_{3} *e*_{5} = *e*_{2}

and

*e*_{3} *e*_{2} = −*e*_{5}

*e*_{2} *e*_{5} = −*e*_{3}

*e*_{5} *e*_{3} = −*e*_{2}

So we have seven rotations of the equation

*e*_{1} *e*_{2} = *e*_{4}

and six permutations of each rotation, for a total of 42 rules. We already had 7 rules, saying each unit squares to -1, so we have the 49 rules we need to multiply all the non-real units by each other.

## More octonion posts

- How close is octonion multiplication to being associative?
- Python code for multiplying octonions and friends

[1] There are multiple conventions for defining octonion multiplication. For example, according to a common definition,

*e*_{1} *e*_{2} = *e*_{3}

but according to our definition

*e*_{1} *e*_{2} = *e*_{4}

In fact, there are 480 ways to define the multiplication rules for *e*_{1} through *e _{7}*. However, all the ways of defining octonion multiplication are isomorphic. You can translate results from one convention to another by renumbering the basis elements. For example, you can convert from the first convention above to our convention by relabeling

(*e*_{1}, *e*_{2}, *e*_{3}, *e*_{4}, *e*_{5}, *e*_{6}, *e*_{7})

as

(*e*_{1}, *e*_{2}, *e*_{4}, – *e*_{7}, *e*_{3}, *e*_{6}, *e*_{5}).

I picked the convention used here because it makes the multiplication rules easy to remember: the mod 7 rule doesn’t hold for some other ways of defining multiplication.

[2] There’s a neat way of representing octonion multiplication rules in terms of a Fano plane diagram, but to use it you have to remember how to label the diagram. The presentation in this post is easier to remember, in my opinion. You might remember the rules given here, then use them to fill in a Fano diagram.

Will you be continuing up the tree of Cayley-Dickson algrebras?

Thanks for the suggestion.

I wrote a little about Cayley-Dickson a while back, but I don’t intend to write any more along these lines for now. On to something else, though I don’t know yet what that will be.

My favorite way of representing octonion multiplication is by XOR’ing the indices. The Cayley-Dickson construction is then accomplished just by successively adding another high-order bit.