public static Quaternion Pow(this Quaternion quaternion, float power) {
			float inputMagnitude = quaternion.Magnitude();
			Vector3 nHat = new Vector3(quaternion.x, quaternion.y, quaternion.z).normalized;
			Quaternion vectorBit = new Quaternion(nHat.x, nHat.y, nHat.z, 0)
			.ScalarMultiply(power * Mathf.Acos(quaternion.w / inputMagnitude))
				.Exp();
			return vectorBit.ScalarMultiply(Mathf.Pow(inputMagnitude, power));
		}