| Предыдущий | Следующий |
| ippStsMisalignedBuf | ippStsInvZero |
ippStsSqrtNegArg
ippStsSqrtNegArg возвращается, когда real-valued Sqrt primitive получает один или несколько отрицательных radicand. В вещественной области квадратный корень такого значения не является допустимым конечным результатом, поэтому это прежде всего ошибка данных или неверно выбранной математической модели, а не проблема памяти.
Проверьте, откуда берётся выражение под корнем. Небольшое отрицательное число может появиться из-за rounding error после вычитания почти равных величин, а заметно отрицательное — из-за неверной формулы, масштаба или неподходящей real-valued операции.
Проверьте radicand перед Sqrt
- Минимальное значение входа и индексы элементов, которые стали отрицательными.
- Не является ли отрицательный хвост следствием floating-point roundoff около математического нуля.
- Требуется ли clamp к нулю в пределах доказанного допуска либо complex-valued вычисление для действительно отрицательных значений.
Не маскируйте произвольные отрицательные значения без анализа: clamp оправдан только для известной численной погрешности, а не для скрытия ошибки вычислительной цепочки.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
