Gerald wrote:
Provided one knows the formula for complex multiplication by heart (and which fractal geek doesn't :^)), then it's easier to put the four elements of a quaternion into two complex variables and go from there:
q1 = (a1,b1), where a1 = x1 + i*y1 and b1 = z1 + i*w1 q2 = (a2,b2), where a2 = x2 + i*y2 and b2 = z2 + i*w2
q3 = q1*q2 --> a3 = a1*a2 - b1*conj(b2) b3 = a1*b2 + b1*conj(a2)
Except for the two conjugations this multiplication has an identical look to the one for complex numbers (the latter done in real numbers, of course).
I just searched this list for "quaternion" in my list archives and came up with quite a bit including Jim Muth's lament about lack of degrees of freedom. I think I can remedy that. It turns out that there really is something more elegant about the hypercomplex numbers. If you represent quaternions and hypercomplex numbers as 2x2 matrices of complex numbers, you can generalize functions by making use of a theorem (I need to find it - if anyone can help let me know) that a generalized function applied to a matrix can be calculated by applying the less generalized version of the function to the the diagonals of the matrix after it is diagonalized. You diagonalize it by pre and pos multiplying by a matrix formed from the eigenvectors. The matrix of eigenvectors is constant for hypercomplex numbers, but is dependent on the value for quaternions. The method still works for quaternions but is much messier. I'll post a more detailed explanation after I'm through sorting this out with Wes Loewer. Tim