public long toBits(Quatd q) { long x = componentBits.toBits((float) q.x); long y = componentBits.toBits((float) q.y); long z = componentBits.toBits((float) q.z); long w = componentBits.toBits((float) q.w); long result = x; result |= y << yShift; result |= z << zShift; result |= w << wShift; return result; }