This post will show that

quaternion product = cross product − dot product.

First, I’ll explain what quaternions are, then I’ll explain what the equation above means.

The complex numbers are formed by adding to the real numbers a special symbol *i* with the rule that *i*^{2} = −1. The quaternions are similarly formed by adding to the real numbers *i*, *j*, and *k *with the requirement [1] that

*i*^{2} = *j*^{2} = *k*^{2} =* ijk* = −1.

A quaternion is a formal sum of a real number and real multiples of the symbols *i*, *j*, and *k*. For example,

*q* = *w* + *xi* + *yj* + *zk*.

In this example we say *w* is the real part of *q* and *xi* + *yj* + *zk* is the vector part of *q*, analogous to the real and imaginary parts of a complex number.

The quaternion product of two vectors (*x*, *y*, *z*) and (*x*´, *y* ´, *z*´) is the product of *q* = *xi* + *yj* + *zk* and *q*‘ = *x’i* + *y’j* +* z’k* as quaternions. The quaternion product *qq*´ works out to be

− (*xx*´ + *yy*´ + *zz*´) + (*yz*´ − *zy*´)*i* +(*zx*´− *xz*´)*j* + (*xy*´− *yx*´)*k*

The real part is the negative of the dot product of (*x*, *y*, *z*) and (*x*´, *y*´, *z*´) and the vector part is the cross product of (*x*, *y*, *z*) and (*x*´, *y*´, *z*´).

NB: The context here is vectors of length 3 embedded in the quaternions. In general the quaternion product is more complicated. The products are simpler in the special case of the real component being zero. See, for example, this post.

This relationship is an interesting bit of algebra on its own, but it is also **historically important**. In the 19th century, a debate raged regarding whether quaternions or vectors were the best way to represent things such as electric and magnetic fields. The identity given here shows how the two approaches are related.

## Related posts

[1] To multiply two quaternions, you need to know how to multiply *i*, *j*, and *k* by each other. It is not immediately obvious, but you can derive everything from *i*^{2} = *j*^{2} = *k*^{2} =*ijk* = −1. For example, start with* ijk* = −1 and multiply both sides on the right by *k*. So *ijk*^{2} = −*k*, and since *k*^{2} = −1, *ij* = *k*. Similar manipulations show *jk* = *i* and *ki* = *j*.

Next, (*jk*)(*ki*) = *ij*, but it also equals *jk*^{2}*i* = −*ji*, so *ij* = −*ji* = *k*. Similarly *kj* = −*jk* = −*i* and *ik* = −*ki* = −*j* and this completes the multiplication table for *i*, *j*, and *k*.

The way to remember these products is to imagine a cycle: *i* -> *j* -> *k* -> *i*. The product two consecutive symbols is the next symbol in the cycle. And when you traverse the cycle backward, you change the sign.