Author: Travis Hoppe
Implementation of the Cayley-Dickson process in python.
Requires pandas
and numpy
to create the multiplication tables and seaborn
, networkx
, and graph-tool
to display.
While the lower order algebras (up to sedenions) have agreed upon names, the infrequent usage of the larger orders has led to an inconsistent Latin naming scheme. Suggested names for the higher orders come from this Stack Exchange question. If two names are given, they are in order: the complete distributive form and the commonly known name.
We can visualize the multiplication tables with a diverging colormap.
Red values are positive, blue values are negative.
For example, with the complex numbers 1 => least red
, i => most red
, -1 => least blue
, -i => most blue
.
Additionally, for the smaller algebras, we can construct the Cayley Graph.
A complex number is a number that can be expressed in the form a + bi
, where a
and b
are real numbers and i
is the imaginary unit. They are a normed division algebra over the real numbers. There is no natural linear ordering on the set of complex numbers.
Quaternions are a normed division algebra over the real numbers. They are noncommutative. The unit quaternions can be thought of as a choice of a group structure on the 3-sphere S3 that gives the group Spin(3), which is isomorphic to SU(2) and also to the universal cover of SO(3).
The octonions are a normed division algebra over the real numbers. They are noncommutative and nonassociative, but satisfy a weaker form of associativity, namely they are alternative. The Cayley graph is hard project into two-dimensions, there overlapping edges along the diagonals.
The sedenions form a 16-dimensional noncommutative and nonassociative algebra over the reals obtained by applying the Cayley–Dickson construction to the octonions.