Чтение Голдберга Что должен знать каждый учёный об арифметике с плавающей точкой , я обнаружил нечто, чего я действительно не понимаю.
Он утверждает, что иметь денормализованные числа хорошо, потому что x = y
тогда и только тогда, когда x-y==0
. Затем он приводит пример:
если (x! = Y), то z = 1 / (x-y)
Теперь предположим, что x-y
- это денормализованное число. Тогда есть большая вероятность, что 1/(x-y)
станет inf
. Что является тем же результатом, если у нас не было денормализованных чисел во-первых.
Даже если я хочу выполнить деление и избежать результатов inf
, то удобнее, если у нас нет денормализованных чисел:
if (x-y) then z = 1/(x-y) // here, we know that z is not inf
Я не могу добиться того же с денормализованными числами, поскольку x-y
может быть не нулем, а денормализованным числом, и тогда деление 1/(x-y)
приведет к inf
. Так вот, денормализованные числа на самом деле вызывают проблемы.
Почему хорошо иметь x=y
тогда и только тогда, когда x-y=0
?
Когда полезны денормализованные числа?