Floating-point extensions part 1: binary floating-point arithmetic
Расширения для чисел с плавающей запятой для C - Часть 1: Двоичная арифметика с плавающей запятой, ISO/IEC TS 18661-1:2014, определяет следующие новые компоненты для стандартной библиотеки C, как рекомендовано ISO/IEC/IEEE 60559:2011 (текущая редакция IEEE-754)
|
__STDC_IEC_60559_BFP__
|
целочисленная константа типа
long
и значением
201ymmL
, заменяет
__STDC_IEC_559__
(макрос-константа) |
|
__STDC_IEC_60559_COMPLEX__
|
целочисленная константа типа
long
и значением
201ymmL
, заменяет
__STDC_IEC_559_COMPLEX__
(макрос-константа) |
|
Определено в заголовочном файле
<limits.h>
|
|
|
CHAR_WIDTH SCHAR_WIDTH UCHAR_WIDTH
SHRT_WIDTH USHRT_WIDTH
INT_WIDTH UINT_WIDTH
LONG_WIDTH ULONG_WIDTH
LLONG_WIDTH ULLONG_WIDTH
(FP Ext 1 TS)
|
ширина, в битах, соответствующего типа
(макрос-константа) |
|
Определено в заголовочном файле
<float.h>
|
|
|
(FP Ext 1 TS)
|
преобразования между всеми поддерживаемыми бинарными типами с плавающей запятой и символьными последовательностями с не более чем CR_DECIMAL_DIG значащими десятичными цифрами выполняются с корректным округлением (это значение составляет не менее DECIMAL_DIG + 3)
(макрос-константа) |
|
Определено в заголовочном файле
<fenv.h>
|
|
|
femode_t
(FP Ext 1 TS)
|
набор динамических режимов управления числами с плавающей запятой, поддерживаемых реализацией, включая режим динамического направления округления
(typedef) |
|
FE_DFL_MODE
(FP Ext 1 TS)
|
указатель на femode_t по умолчанию
(макроконстанта) |
|
FE_SNANS_ALWAYS_SIGNAL
(FP Ext 1 TS)
|
определена (как целочисленная константа 1), если аргументы sNaN вызывают у функций, подавляющих qNaN, таких как
hypot
или
fmax
, генерацию FE_INVALID и возврат qNaN
(макрос-константа) |
|
(FP Ext 1 TS)
|
устанавливает указанные флаги исключений с плавающей точкой без вызова побочных эффектов, которые могли бы возникнуть при их возбуждении
(функция) |
|
(FP Ext 1 TS)
|
проверяет, содержатся ли заданные флаги в сохранённом представлении флагов исключений с плавающей точкой
(функция) |
|
(FP Ext 1 TS)
|
получает и устанавливает все динамические режимы управления числами с плавающей точкой реализации коллективно
(функция) |
|
Определено в заголовочном файле
<stdint.h>
|
|
|
INTn_WIDTH UINTn_WIDTH
INT_LEASTn_WIDTH UINT_LEASTn_WIDTH
INT_FASTn_WIDTH UINT_FASTn_WIDTH
INTPTR_WIDTH UINTPTR_WIDTH
INTMAX_WIDTH UINTMAX_WIDTH
PTRDIFF_WIDTH
SIG_ATOMIC_WIDTH
SIZE_WIDTH
WCHAR_WIDTH WINT_WIDTH
(FP Ext 1 TS)
|
ширина, в битах, соответствующего типа
(макроконстанта) |
|
Определено в заголовочном файле
<stdlib.h>
|
|
|
(FP Ext 1 TS)
|
преобразует одно число с плавающей точкой в строку, используя указанный формат snprintf
(функция) |
|
Определено в заголовке
<math.h>
|
|
|
FP_INT_UPWARD
FP_INT_DOWNWARD
FP_INT_TOWARDZERO
FP_INT_TONEARESTFROMZERO
FP_INT_TONEAREST
(FP Ext 1 TS)
|
направление округления для функций ceil, floor, trunc, round и roundeven, подходящее для использования с семейством функций fromfp
(макроконстанта) |
|
FP_LLOGB0
(FP Ext 1 TS)
|
значение, возвращаемое
llogb
если аргумент равен нулю
(макроконстанта) |
|
FP_LLOGBNAN
(FP Ext 1 TS)
|
значение, возвращаемое
llogb
если аргумент является NaN
(макроконстанта) |
|
(FP Ext 1 TS)
|
представляет сигнальный NaN для float, double, long double соответственно
(макрос-константа) |
|
FP_FAST_FADD FP_FAST_FADDL FP_FAST_DADDL
FP_FAST_FSUB FP_FAST_FSUBL FP_FAST_DSUBL
FP_FAST_FMUL FP_FAST_FMULL FP_FAST_DMULL
FP_FAST_FDIV FP_FAST_FDIVL FP_FAST_DDIVL
FP_FAST_FFMA FP_FAST_FFMAL FP_FAST_DFMAL
FP_FAST_FSQRT FP_FAST_FSQRTL FP_FAST_DSQRTL
(FP Ext 1 TS)
|
если определено, указывает, что соответствующая функция выполняется быстрее, чем эквивалентная функция с большим типом с последующим приведением к целевому типу
(макрос-константа) |
|
iseqsig
(FP Ext 1 TS)
|
(функция-макрос) |
|
iscanonical
(FP Ext 1 TS)
|
проверяет, является ли значение с плавающей точкой каноническим
(макрос функции) |
|
issignaling
(FP Ext 1 TS)
|
проверяет, является ли значение с плавающей точкой сигнальным NaN
(функция-макрос) |
|
issubnormal
(FP Ext 1 TS)
|
проверяет, является ли значение с плавающей точкой субнормальным
(макрос функции) |
|
iszero
(FP Ext 1 TS)
|
проверяет, является ли значение с плавающей точкой нулем (положительным, отрицательным, беззнаковым)
(макрос функции) |
|
(FP Ext 1 TS)
|
округление до знакового целого числа с использованием указанного направления округления
(функция) |
|
(FP Ext 1 TS)
|
округление до беззнакового целого числа с использованием указанного направления округления
(функция) |
|
(FP Ext 1 TS)
|
округлить до целого числа со знаком, используя указанное направление округления, с отчётом о неточности
(функция) |
|
(FP Ext 1 TS)
|
округляет до беззнакового целого числа, используя указанное направление округления, с отчётом о неточности
(функция) |
|
(FP Ext 1 TS)
|
округляет до ближайшего, при равном удалении - до чётного
(функция) |
|
(FP Ext 1 TS)
|
эквивалентно
logb
за исключением того, что возвращаемый тип
long
(функция) |
|
(FP Ext 1 TS)
|
возвращает значение аргумента с максимальной величиной
(функция) |
|
(FP Ext 1 TS)
|
возвращает значение аргумента с минимальной величиной
(функция) |
|
(FP Ext 1 TS)
|
возвращает следующее большее представимое значение с плавающей точкой
(функция) |
|
(FP Ext 1 TS)
|
возвращает следующее меньшее представимое значение с плавающей точкой
(функция) |
|
(FP Ext 1 TS)
|
вычисляет x+y как будто с бесконечной точностью и округляет один раз до целевого типа
(функция) |
|
(FP Ext 1 TS)
|
вычисляет x-y как если бы с бесконечной точностью и округлением один раз к целевому типу
(функция) |
|
(FP Ext 1 TS)
|
вычисляет x*y как будто с бесконечной точностью и округляет один раз до целевого типа
(функция) |
|
(FP Ext 1 TS)
|
вычисляет x/y как если бы с бесконечной точностью и округляет один раз до целевого типа
(функция) |
|
(FP Ext 1 TS)
|
вычисляет то же, что и
fma
как если бы с бесконечной точностью и округлением один раз к целевому типу
(функция) |
|
(FP Ext 1 TS)
|
вычисляет то же, что и
sqrt
как если бы с бесконечной точностью и округлением один раз к целевому типу
(функция) |
|
(FP Ext 1 TS)
|
упорядочивает два значения с плавающей точкой, используя отношение полного порядка ISO 60559
(функция) |
|
(FP Ext 1 TS)
|
упорядочивает величины двух значений с плавающей запятой, используя отношение полного порядка ISO 60559
(функция) |
|
(FP Ext 1 TS)
|
получает каноничное двоичное кодирование ISO 60559 для заданного значения с плавающей запятой
(функция) |
|
(FP Ext 1 TS)
|
извлекает полезную нагрузку из заданного значения NaN
(функция) |
|
(FP Ext 1 TS)
|
создает тихий NaN с указанным полезным содержимым
(функция) |
|
(FP Ext 1 TS)
|
создает сигнальный NaN с указанной полезной нагрузкой
(функция) |
|
Определено в заголовочном файле
<tgmath.h>
|
|
|
roundeven
(FP Ext 1 TS)
|
универсальная перегрузка
roundeven
(функция) |
|
llogb
(FP Ext 1 TS)
|
обобщённая перегрузка
llogb
(функция) |
|
fmaxmag
(FP Ext 1 TS)
|
универсальная перегрузка
fmaxmag
(функция) |
|
fminmag
(FP Ext 1 TS)
|
универсальная перегрузка
fminmag
(функция) |
|
nextup
(FP Ext 1 TS)
|
универсальная перегрузка
nextup
(функция) |
|
nextdown
(FP Ext 1 TS)
|
универсальная перегрузка
nextdown
(функция) |
|
fromfp
(FP Ext 1 TS)
|
универсальная перегрузка
fromfp
(функция) |
|
ufromfp
(FP Ext 1 TS)
|
универсальная перегрузка
ufromfp
(функция) |
|
fromfpx
(FP Ext 1 TS)
|
универсальная перегрузка
fromfpx
(функция) |
|
ufromfpx
(FP Ext 1 TS)
|
универсальная перегрузка
ufromfpx
(функция) |
|
nextdown
(FP Ext 1 TS)
|
универсальная перегрузка
nextdown
(функция) |
|
totalorder
(FP Ext 1 TS)
|
универсальная перегрузка
totalorder
(функция) |
|
totalordermag
(FP Ext 1 TS)
|
общая перегрузка
totalordermag
(функция) |
|
fadd
(FP Ext 1 TS)
|
универсальная перегрузка
fadd
(функция) |
|
dadd
(FP Ext 1 TS)
|
универсальная перегрузка
dadd
(функция) |
|
fsub
(FP Ext 1 TS)
|
универсальная перегрузка
fsub
(функция) |
|
dsub
(FP Ext 1 TS)
|
универсальная перегрузка
dsub
(функция) |
|
fmul
(FP Ext 1 TS)
|
универсальная перегрузка
fmul
(функция) |
|
dmul
(FP Ext 1 TS)
|
универсальная перегрузка
dmul
(функция) |
|
fdiv
(FP Ext 1 TS)
|
универсальная перегрузка
fdiv
(функция) |
|
ddiv
(FP Ext 1 TS)
|
универсальная перегрузка
ddiv
(функция) |
|
ffma
(FP Ext 1 TS)
|
универсальная перегрузка
ffma
(функция) |
|
dfma
(FP Ext 1 TS)
|
универсальная перегрузка
dfma
(функция) |
|
fsqrt
(FP Ext 1 TS)
|
универсальная перегрузка
fsqrt
(функция) |
|
dsqrt
(FP Ext 1 TS)
|
универсальная перегрузка
dsqrt
(функция) |
Примечания
Стандартные макросы C __STDC_IEC_559__ и __STDC_IEC_559_COMPLEX__ становятся устаревшими в соответствии с данной технической спецификацией.
Все функции и макросы, добавленные в библиотеку C этим расширением, объявляются только если макрос __STDC_WANT_IEC_60559_BFP_EXT__ определён до включения соответствующего заголовочного файла.
Помимо дополнений к стандартной библиотеке, ISO/IEC TS 18661-1:2014 вносит ряд изменений в базовый язык, в частности разделяя управление числами с плавающей точкой на статическое (управляемое новой директивой #pragma STDC FENV_ROUND ) и динамическое (управляемое функцией fesetround ). Большинство функций math.h учитывают статический режим округления, если он установлен, в приоритете над динамическим режимом округления.
|
Этот раздел не завершён
Причина: добавить на страницу pragma или полностью описать директиву pragma здесь? |