public float LengthSquared() { return X * X + Y * Y + Z * Z + W * W; }
public static void Validate(this Quaternion q) { if (IsInvalid(q.LengthSquared())) { throw new NotFiniteNumberException("Invalid value."); } }