I assume that this solution is known, but I've not seen it before -- e.g., in Wikipedia, etc. I am mystified why not. Find quaternion X s.t. AX=XB, A,B unit vector quaternions. A,B are unit vector quaternions => AA = BB = -1. Consider X=(1-AB). A(1-AB)=(1-AB)B A-AAB = B-ABB A-(-1)B = B-A(-1) A+B = B+A (Check!) -X = AB-1 is also a solution: A(AB-1)=(AB-1)B AAB-A = ABB-B -B-A = -A-B (Check!) Example: A = J, B = (cos(2t) + I sin(2t)) J, X = 1-AB = 2*cos(t)*(cos(t) - I sin(t)). Note that X is actually a square root, as is typical for quaternion rotations. If we want to normalize X, simply divide by 2*cos(t). If X isn't normalized, then denote X' as the conjugate of X, and compute B = X'AX/(X'X); since X'X=|X|^2, we never need to compute |1-AB|. ----- The above is closely related to the following hack: To compute the square root of a complex number z = r*(cos(t)+i*sin(t)): Let sz = |z|+z = r*(1+cos(t)+i*sin(t)). Then sz^2 = 2*(1+cos(t))*r^2*(cos(t)+i*sin(t)) = 2*(1+cos(t))*r*z Thus sqrt(z) = sz/|sz| = sz/sqrt(2*r*(1+cos(t))). Note that we have utilized trig only to show that this hack works; we never have to calculate trig functions to compute the square root. This hack works because the points (0,|z|,z,|z|+z) form a rhombus, so |z|+z has 1/2 the angle of z. Computer graphics people also utilize this hack for quaternion square roots, so how come they don't compute (1-AB) for these rotations, as above?