Операция с плавающей точкой имеет субнормальные результаты
Эта проверка определяет, приводит ли операция с плавающей точкой к субнормальному результату.
Субнормальные числа имеют значения меньше, чем самое маленькое число с плавающей запятой, которое может быть представлено без начальных нулей в мантиссе. Присутствие субнормальных чисел указывает на потерю значительных цифр. Эта потеря может накопиться по последующим операциям и в конечном счете привести к неожиданным значениям. Субнормальные числа могут также замедлить выполнение на целях без аппаратной поддержки.
По умолчанию результаты проверки не появляются в ваших результатах верификации. Чтобы видеть результаты проверки, измените значение по умолчанию опции Subnormal detection mode (-check-subnormal)
. Результаты проверки отличаются на основе режима обнаружения, который вы задаете. Во всех режимах кроме allow
, чтобы идентифицировать субнормальные результаты, ищут красный или оранжевый Subnormal float, проверяет операции.
Режим | Проверяйте цвета | Поведение после проверки |
---|---|---|
Этот режим обнаруживает вхождение субнормального значения. Этот режим останавливает путь к выполнению с субнормальным результатом и препятствует тому, чтобы субнормальные значения распространили далее. Поэтому на практике вы видите только первое вхождение субнормального значения. | Цвет проверки зависит только от результата операции. Проверка отмечает операцию, которая имеет субнормальные результаты, даже если те результаты прибывают только из субнормальных операндов. Например, если | Блокирование проверки. Если проверка является красной, остановки верификации. Если проверка является оранжевой, верификация удаляет пути к выполнению, содержащие субнормальный результат фактора. Например, подсказка на результате не показывает субнормальные значения. |
Этот режим подсвечивает все случаи субнормальных значений. Даже если субнормальный результат прибывает из предыдущих субнормальных значений, результат подсвечен. | Цвет проверки зависит только от результата операции. Проверка отмечает операцию, которая имеет субнормальные результаты, даже если те результаты прибывают только из субнормальных операндов. Например, если | Неблокирование проверки. Верификация продолжается, даже если проверка является красной. Если проверка является оранжевой, верификация не удаляет пути к выполнению, содержащие субнормальный результат фактора. |
Этот режим подсвечивает первое вхождение субнормального значения. Если субнормальное значение распространяет к дальнейшим субнормальным результатам, те последующие результаты не подсвечены. | Цвет проверки зависит от результата операции и значений операнда. Проверка не отмечает субнормальный результат, если она прибывает только из субнормальных операндов. В этом режиме проверка:
| Неблокирование проверки. Верификация продолжается, даже если проверка является красной. Если проверка является оранжевой, верификация не удаляет пути к выполнению, содержащие субнормальный результат фактора. |
Если вы принимаете решение проверять на поднормаль, можно также идентифицировать от подсказок, исключает ли переменный диапазон субнормальные значения. Например, если подсказки показывают [-1.0 .. -1.1754E-38] or [-0.0..0.0] or [1.1754E-38..1.0]
, можно интерпретировать это, переменная не имеет субнормальных значений.
Группа: числовой |
Язык: C | C++ |
Акроним: ПОДНОРМАЛЬ |
Invalid operation on floats
| Overflow
| Subnormal detection mode (-check-subnormal)