В чем разница между quiet NaN и signaling NaN?



Я читал о плавающей точке, и я понимаю, что NaN может быть результатом операций. но я не могу понять, что именно это за понятия. В чем разница?



какой из них может быть создан во время программирования на C++? Как программист, могу ли я написать программу, вызывающую sNaN?

779   1  

1 ответ:

когда операция приводит к Тихому NaN, нет никаких признаков того, что что-то необычно, пока программа не проверит результат и не увидит NaN. То есть, вычисление продолжается без какого-либо сигнала от блока с плавающей запятой (FPU) или библиотеки, если Плавающая точка реализована в программном обеспечении. Сигнализируя NaN произведет сигнал, обычно в форме исключения от FPU. Будет ли вызвано исключение, зависит от состояния FPU.

в C++11 добавляет несколько языков управление средой с плавающей запятой обеспечивает стандартизированные способы создания и тестирования для NaNs. Однако реализация элементов управления не является хорошо стандартизированной, и исключения с плавающей запятой обычно не перехватываются так же, как стандартные исключения C++.

в системах POSIX/Unix исключения с плавающей точкой обычно перехватываются с помощью обработчика для SIGFPE.

Comments

    Ничего не найдено.