Показать меню

fenv.h

fenv.h — заголовочный файл стандартной библиотеки языка Си, содержащий объявление типов данных для работы с числами с плавающей запятой.

Типы данных

Заголовочный файл объявляет типы fenv_t и fexcept_t. Тип fenv_t предоставляет окружение для работы с числами с плавающей запятой. Оно работает с флагами состояния для работы с числами с плавающей запятой и управляет платформо-зависимыми режимами.

Макрос

Заголовочный файл объявляет следующие константы:

FE_DIVBYZERO

FE_INEXACT

FE_INVALID

FE_OVERFLOW

FE_UNDERFLOW

FE_ALL_EXCEPT

FE_DOWNWARD

FE_TONEAREST

FE_TOWARDZERO

FE_UPWARD

FE_DFL_ENV

Макрос FE_ALL_EXCEPT определена если одновременно определены следующие константы: FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW, FE_UNDERFLOW.

Макросы FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD определены если платформа поддерживает получение и изменение направления округления в терминах функций fegetround() и fesetround().

Макрос FE_DFL_ENV представляет умалчиваемое окружение вычислений с плавающей точкой.

Функции

Исключения

#include <fenv.h> int feclearexcept(int excepts); int fegetexceptflag(fexcept_t *flagp, int excepts); int feraiseexcept(int excepts); int fesetexceptflag(const fexcept_t *flagp, int excepts); int fetestexcept(int excepts);

Перечисленные функции сбрасывают флаги исключений (feclearexcept) и устанавливают их (feraiseexcept), записывают (fesetexceptflag) и получают (fegetexceptflag) машинно-зависимые флаги состояний и производят проверку установки флагов (fetestexcept).

Округление

#include <fenv.h> int fegetround(void); int fesetround(int round);

Функции получают и устанавливают макрос, отвечающий за направление округления.

Поддержка окружения

#include <fenv.h> int fegetenv(fenv_t *envp); int feholdexcept(fenv_t *envp); int fesetenv(const fenv_t *envp); int feupdateenv(const fenv_t *envp);

Функции получают окружение для вычислений с плавающей точкой, сохраняют его в переменной, устанавливают новое значение и обновляют его соответственно.

Директивы компилятора

#include <fenv.h> #pragma STDC FENV_ACCESS on-off-switch

Директива сообщает окружению (или компилятору), что эта часть кода обращается к платформо-зависимым флагам состояния для операций с типом float.

Пример:

#include <fenv.h> void f (double x) { #pragma STDC FENV_ACCESS ON void g (double); void h (double); /*...*/ g(x+1); h(x+1); /*...*/ }

Поведение функции g и h может зависеть от флагов состояния или побочных эффектов от операций x+1.

Еще по этой теме:
DDP-24
DDP-24
CCC DDP-24 (Digital Data Processor 24, цифровой процессор данных) — 24-битный мини-компьютер, разработанный в Computer Control Corporation и выпущенный в июне 1963 года. Использовался как ядро для
SPARC T4
SPARC T4
SPARC T4 — многоядерный многопоточный микропроцессор с системой команд SPARC V9, выпущенный компанией Oracle в 2011 году. Характеризуется высоким уровнем многопоточности: в одной микросхеме находится
Канада, Ясумаса
Канада, Ясумаса
Ясумаса Канада (яп. 金田 康正 Канада Ясумаса, 1949, Химэдзи — 11 февраля 2020) — японский математик. Ясумаса Канада стал известен в научных кругах своими работами по исчислению числа пи (его
Rock (процессор)
Rock (процессор)
Rock — многопоточный, многоядерный микропроцессор с системой команд SPARC, который разрабатывался компанией Sun Microsystems до её покупки Oracle Corporation. Это отдельная разработка, не связанная с
stdio.h
stdio.h
stdio.h (от англ. standard input/output header — стандартный заголовочный файл ввода-вывода) заголовочный файл стандартной библиотеки языка Си, содержащий определения макросов, константы и объявления
assert.h
assert.h
assert.h — заголовочный файл стандартной библиотеки языка программирования С, в котором объявляется макрос препроцессора языка С assert(). Данный макрос реализует исключение, которое может
Комментарии:
Добавить комментарий
Ваше Имя:
Ваш E-Mail: