public static Quaternion log(Quaternion q) { final double norm = q.norm(); return new Quaternion( Math.log(norm), (Double3Vector) q.imag().normalize().scalarMultiply(Math.acos(q.re / norm))); }