def log(q): im = q.im() imn = np.linalg.norm(im) n = math.atan2(imn, q.w) if(abs(n) < 1e-6): return 2*im else: return 2*(n/imn)*im