Как работает Java-среда выполнения, ориентированная на процессор Intel без SSE2, с денормалами с плавающей запятой, когда установлен strictfp
?
Даже когда 387 FPU установлен для 53-битной точности, он сохраняет диапазон негабаритных экспонентов, который:
- принудительно обнаруживает переполнение/переполнение при каждом промежуточном результате и
- затрудняет избежание двойного округления денормалов.
Стратегии включают повторное вычисление операции, которая привела к денормальному значению с эмулируемой плавающей запятой или постоянному смещению экспоненты по линиям этой техники для оснащения OCaml с 63-битными поплавками, заимствуя бит от экспоненты, чтобы избежать двойного округления.
В любом случае я не вижу возможности избежать хотя бы одной условной ветки для каждого вычисления с плавающей запятой, если только эта операция не может быть определена статически не для переполнения/переполнения. Как рассматриваются исключительные (переполнение/недоиспользование) случаи, это часть моего вопроса, но это не может быть отделено от вопроса о представлении (постоянная стратегия смещения экспонентов, по-видимому, означает, что только переполнение должно быть например, для проверки).