quaternion analysis