Окружение арифметики с плавающей точкой
Окружение арифметики с плавающей точкой это набор флагов статуса и управляющих режимов, поддерживаемых реализацией. Она локальна в потоке, каждый поток наследует начальное состояние своего окружения с плавающей точкой от родительского потока. Операции с плавающей точкой изменяют флаги статуса, чтобы сигнализировать о ненормальных результатах или предоставлять дополнительную информацию. Статус управляющего режима с плавающей точкой влияет на результаты некоторых операций с плавающей точкой.
Доступ и модификация окружения арифметики с плавающей точкой имеет смысл, только когда
#pragma STDC FENV_ACCESS установлен в ON. Иначе реализация вольна предполагать, что управляющие режимы плавающей точки всегда установлены по умолчанию и что флаги статуса арифметики с плавающей точкой никогда не проверяются или модифицируются. На практике несколько существующих компиляторов, такие какs HP aCC, Oracle Studio и IBM XL, поддерживают #pragma явно, однако большинство компиляторов в любом случае разрешают значимый доступ к окружению с плавающей точкой.
Типы
Определены в заголовочном файле
<fenv.h> | |
fenv_t
|
Тип, представляющий всё окружение арифметики с плавающей точкой |
fexcept_t
|
Тип, представляющий вместе все флаги статусов арифметики с плавающей точкой |
Функции
(C99) |
очищает указанный плавающей точкой флаги статуса Оригинал: clears the specified floating-point status flags Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C99) |
определяет, какая из указанных плавающей точкой флаги состояния устанавливаются Оригинал: determines which of the specified floating-point status flags are set Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C99) |
Возникает указанного плавающей точкой исключений Оригинал: raises the specified floating-point exceptions Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C99)(C99) |
копирует состояние указанного плавающей точкой состояния флагов или с плавающей точкой окружающей среды Оригинал: copies the state of the specified floating-point status flags from or to the floating-point environment Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C99)(C99) |
получает или задает направление округления Оригинал: gets or sets rounding direction Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C99) |
сохраняет или восстанавливает текущую плавающей точкой окружающей среды Оригинал: saves or restores the current floating point environment Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C99) |
сохраняет окружающую среду, очищает все флаги состояния и игнорирует все ошибок в будущем Оригинал: saves the environment, clears all status flags and ignores all future errors Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
(C99) |
Восстанавливает с плавающей точкой окружающей среды и повышает ранее вызывать исключения Оригинал: restores the floating-point environment and raises the previously raise exceptions Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) |
Макросы
плавающей точкой исключений Оригинал: floating-point exceptions Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (макроконстанта) | |
плавающей точкой округления направлении Оригинал: floating-point rounding direction Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (макроконстанта) | |
(C99) |
умолчанию с плавающей точкой окружающей среды Оригинал: default floating-point environment Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (макроконстанта) |
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.6 Окружение арифметики с плавающей точкой <fenv.h> (стр. 150-156)
- 7.31.4 Окружение арифметики с плавающей точкой <fenv.h> (стр. 332)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.6 Окружение арифметики с плавающей точкой <fenv.h> (стр. 206-215)
- 7.31.4 Окружение арифметики с плавающей точкой <fenv.h> (стр. 455)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.6 Окружение арифметики с плавающей точкой <fenv.h> (стр. 187-196)
См. также
Документация C++ по окружению арифметики с плавающей точкой
|