A Quaternion Calculator
Copyright© 1998, Doug Sweetser, All rights reserved worldwide.

This is a calculator that can take real, complex numbers or quaternions as input, using the scalar, i, j and k buttons for each part. Results are obtained using the "=" button in the upper corner, and previous result(s) can be seen by pressing the "ans" or "entry" buttons.

Addition and subtraction remain the same for these fields, but multiplication and division get more complicated. 

Regular multiplication and division becomes what I call the Grassman product, "x", and Grassman division, "/". Since quaternions do not in general commute, these get split into the even "<x>" and odd ">x<" parts which together add up to "x". 

  • q1 <x> q2  =  q2 <x> q1
  • q1 >x< q2  = -q2 >x< q2
  • q1 <x> q2 + q1 >x< q2  =  q1 x q2
There are three imaginary vectors, i, j and k.  The complement of a quaternion flips the sign of the these vectors.  The Euclidean product "*" and Euclidean division "\" are formed from taking the complement of the first quaternion before carrying out the operation.  Both of these can be split into even and odd parts. 

Two of these fancy multiplications are actually quite familiar.  The Grassman outer product ">x<" is better known as the cross product.  The even Euclidean product "<*>" is the Euclidean norm.  The scalar part of the Grassman inner product "<x>" looks just like the invariant interval found in special relativity.  The outer Euclidean product ">*<" is still a mystery, but my money says it is related to that mystery known as spin (since ">x<" deals with angular momentum). 

Some patterns to think about... 

If only real numbers are used, 
there is no difference between any Grassman and Euclidean products, and all odd products are zero. 

If only complex numbers are used, the odd Grassman product ">x<" is zero, but not the odd Euclidean product ">*<". 

No matter what kind of number is used, the vector part of the even Euclidean product "<*>" is zero. 

No matter what kind of number is used, the vector part of the even Euclidean product "<*>" is zero. 

Identical statements apply to the divisions. 

And most important of all, no matter what kind of number is used, the Grassman product "x" and the Euclidean product "*"  are not zero unless one input is zero. 

Of course, you may say, "I don't think this will show up in a supermarket anytime soon." 
Oh well  :-) 

I reserve all rights to this software.  Visit and play as you like, but if you want to use the engine behind this for 3D animations, let's talk.  That's the direction I am headed... 


Home Page | Quaternion Physics | Pop Science
Java | The Bike | Lindy Hop | Contact Doug
Copyright © 1997, Doug Sweetser, All rights reserved worldwide.