public override bool Equals(object o)
{
if (!(o is Quaternion)) return false;
Quaternion quaternion = (Quaternion) o;
var result =
FloatAlmostEqual (x, quaternion.x) &&
FloatAlmostEqual (y, quaternion.y) &&
FloatAlmostEqual (z, quaternion.z) &&
FloatAlmostEqual (s, quaternion.s);
return result;
}