Quaternions are stored as 4 floats or doubles, often called x, y, z and w, where the first three represent an axis and w the degree of rotation around that axis.
A naive approach would be to just compare those numbers of two quaternions for equality. However, because floating point calculations involve an error, you should at least use an error, often called eps (for epsilon) and compare each component like
double const eps = 1e-12; // some error threshold
abs(quat1_x - quat2_x) < eps // similar enough?
// repeat for other values..
A better test would be to calculate the dot product of the two quaternions and test whether it is close to 1.0. You should look up the equation of quaternions with sin and cos and just dot two quaternions, then you should readily see why this works.
q
and-q
). The naive (computationally-wise) way would be to apply both quaternions to the same vector and see if their vector results are different.. \$\endgroup\$