Я рассматривал реализацию библиотеки времени выполнения arcsin, которая была реализована путем вычисления:
ArcTan(X, Sqrt(1 - X*X))
Однако код, который вычислял 1 - X*X, фактически оценивал (1-X)*(1+X). Есть ли веская причина для предпочтения последнего? Я подозреваю, что последний уменьшает погрешность округления для X близко к нулю, но я не могу объяснить, почему это было бы так.