Численные подводные камни без FPU повышенной точности

В превосходной статье Моннио "Подводные камни проверки арифметики с плавающей точкой" приводятся примеры неожиданного численного поведения. Однако большинство примеров зависят от FPU с расширенной точностью или операций с повышенной точностью (например, умножение с накоплением). Помимо нуля со знаком и сравнений с использованием NaN, есть ли хорошие примеры удивительного численного поведения, когда аппаратное обеспечение расширенной точности отключено?

1 ответ

Решение

Пример, который часто удивляет программистов, это когда x + 1 == x, В плавающей запятой одинарной точности это верно для x столь же маленький как 2^25 из-за ограниченной точности мантиссы. Это часто возникает при увеличении значений времени в симуляции на небольшой временной шаг. Аналогичная проблема коснулась ракеты "Патриот".

Другие вопросы по тегам