ОБЗОР
#include <i386/fpu_control.h>void __setfpucw(unsigned short control_word);
ОПИСАНИЕ
В архитектуре i386 функция __setfpucw() пересылает control_word в регистр FPU (модуль обработки операций с плавающей точкой). Используется для управления точностью, округлением и исключениями при операциях с плавающей точкой.СООТВЕТСТВИЕ СТАНДАРТАМ
Эта функция является нестандартным расширением GNU.ЗАМЕЧАНИЯ
Начиная с glibc 2.1 эта функция не существует. Для управления режимами округления FPU в ISO C99 введены новые функции (прототипы объявлены в <fenv.h>): fegetround(3), fesetround(3), окружением при работе с плавающей точкой: fegetenv(3), feholdexcept(3), fesetenv(3), feupdateenv(3) и для управления исключениями FPU: feclearexcept(3), fegetexceptflag(3), feraiseexcept(3), fesetexceptflag(3) и fetestexcept(3).Если по какой-то причине необходим прямой доступ к слову управления FPU, то можно использовать макросы _FPU_GETCW и _FPU_SETCW из <fpu_control.h>.
ПРИМЕР
__setfpucw(0x1372)
Устанавливает слово управления FPU на архитектуре i386:
- включает расширенную точность
- включает округление к ближайшему
- включает исключение при переполнении, делении на ноль и NaN