A good friend of mine recently discovered some of the fun things you can do with complex numbers if you’re using them to represent points in the plane. Yesterday, I re-read a passage by Tony Smith about why one should be interested in Clifford algebras. Tony Smith’s passage included all of the fun one can have with the complex plane and extends it to three, four, five, and more dimensions. I thought, I should segue from the complex numbers in the plane to Clifford algebras to quaternions in 3-space to Clifford algebras again in a series of posts here.
What are Complex Numbers
Say you’re playing around with polynomials. You start playing with the equation
. WIth a little fiddling, you find this is equivalent to
. Then, you take the square root of both sides to find that
. We started with a polynomial equation in one variable in which the highest exponent was two and we found two answers.
Pounding your chest and sounding your barbaric yawp, you move on to
. This should be easy, right? With the same fiddling, we find
and then
.
Uh-oh. What do we do now? We can’t think of any number that when multiplied by itself gives us a negative number. If we start with zero, we end with zero. If we multiply a positive number by itself, we get a positive number. If we multiply a negative number by itself, we get a positive number. Again!

and with
. Then, you generate
by doing
.
. Let
and
. In general, we write
to mean
when there are
copies of
. It is easy to verify then that
.
with each strand made up of four different
unless
is a non-negative integer.
so that
?
. It is obvious that
for all positive integers
, it is trivially true that
. But, that was too easy.
will be harder? No. Again,
.
for some constant
. What are we going to try for
then? Let’s try the obvious:
. Hooray!
as
. Similarly, we can think of
as
for all positive integers
for any positive rational number
.
. What are we going to try for
. Then,
. If we want
and
. This means that
and
. In particular, notice that if
and
are both real numbers with
is complex.
. (For some reason though, gnuplot thinks
, so no graph for you…)
normalized to range between zero and one):
. That is still not quite the polynomial I want for this application, but it’s close. A few minutes of Lisp saved me hours of whiteboard work.