| Предыдущий | Следующий |
| ippStsLnNegArg | ippStsJPEGMarker |
ippStsNanArg
ippStsNanArg означает, что один или несколько входных аргументов либо элементов массива уже содержат NaN. Некоторые IPP routines продолжают работу и распространяют NaN дальше, другие используют documented replacement rules, поэтому положительный статус нельзя считать безусловно корректным результатом.
NaN обычно появляется не в самой операции, которая его обнаружила. Источник стоит искать раньше: деление 0/0, sqrt отрицательного значения, некорректная нормализация, переполнение промежуточной формулы или неинициализированный floating-point buffer.
Что означает ippStsNanArg
ippStsNanArg сообщает, что во входном скалярном значении или массиве уже присутствует NaN. Сам IPP-вызов часто лишь обнаруживает проблему, возникшую на предыдущей стадии вычислений.
Как найти источник
Проверяйте входные vectors, images и coefficient arrays непосредственно перед вызовом. Затем переносите finite/NaN check назад по pipeline до первого места, где значение перестало быть конечным. Типичные источники — 0/0, недопустимый аргумент математической функции, неинициализированный floating-point buffer или ошибочная нормализация.
Что делать
Сверьте документированное поведение конкретного primitive при NaN и решите, допустим ли такой результат следующей стадии. Исправляйте первое место возникновения NaN; фильтрация только на выходе скрывает причину и оставляет зависимый от данных дефект.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
