| Предыдущий | Следующий |
| STATUS_FLOAT_INEXACT_RESULT | STATUS_FLOAT_OVERFLOW |
STATUS_FLOAT_INVALID_OPERATION
Что означает STATUS_FLOAT_INVALID_OPERATION
STATUS_FLOAT_INVALID_OPERATION означает незамаскированное FP-условие invalid operation. Типичные примеры — 0/0, ∞−∞, квадратный корень отрицательного числа в вещественной арифметике или операция с signaling NaN.
Что проверить
- Сохраните opcode и исходные операнды в битовом виде, чтобы различить обычное число, infinity и quiet/signaling NaN.
- Проследите происхождение NaN или недопустимого аргумента до первой операции, которая его создала; последующая инструкция может только обнаружить уже испорченное значение.
- Сверьте маску invalid-operation и FP control state текущего thread. Изменение маски влияет на доставку исключения, но не делает математически недопустимую операцию корректной.
Чем отличается от деления на ноль
Ненулевое конечное значение, делённое на ноль, относится к divide-by-zero, тогда как 0/0 — к invalid operation. Эта граница полезна при поиске неверной проверки знаменателя. После исправления повторите те же входные данные и убедитесь, что недопустимый операнд не возникает раньше по цепочке.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.