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