update quaternion macro