Came across another issue with the Quaternions package. Taking the logarithm of a quaternion and then raising e to the log should return the original quaternion. But that is not always the case.
These works as expected:
Needs@"Quaternions`"
Exp@Log@Quaternion[1., 2., 3., 4.]
Exp@Log@Quaternion[1., 2., -3., 4.]
Quaternion[1., 2., 3., 4.]
Quaternion[1., 2., -3., 4.]
But not these:
Exp@Log@Quaternion[1., -2., 3., 4.]
Exp@Log@Quaternion[1., 0., -3., 4.]
Quaternion[1., 2., -3., -4.]
Quaternion[1., 0., 3., -4.]
The problem occurs when the first nonzero element of the vector part (= last 3 elements) is negative.