HAS_SUBNORM равен 0: FTZ (очистка до нуля) должна выполняться до обнаружения крошечности или после обнаружения крошечности?
Рассмотреть возможность
1.1754944E-38f - 1.1754945E-38f
(оба нормальные).
Если
HAS_SUBNORM is 1
, то ответ (субнормальный) и никаких исключений не возникает.
Если
HAS_SUBNORM is 0
, то ответ
-0.0f
(субнормальный
-1E-45f
был сброшен до нуля). Вопрос: поднимать?
IEEE 754-2008, 7.5 Недополнение:
Об исключении недополнения должно сообщаться, когда обнаруживается крошечный ненулевой результат.
Крошечность обнаруживается:
- после округления, или
- перед округлением.
Однако на каком шаге должна выполняться логика FTZ (сброс до нуля):
- до обнаружения крошечности, или
- после обнаружения крошечности?
Причина вопроса: какое-то оборудование не поддерживает субнормальные числа, но повышает
Underflow and Inexact
в примере выше. Это означает, что такое оборудование выполняет ЗСТ после обнаружения крошечности. Мне интересно, правильное ли это поведение.