Spec-Zone.ru › GCC 15

7.2.1 Встроенные функции форматов с плавающей запятой

Встроенная функция: double __builtin_huge_val (void)

Возвращает положительную бесконечность, если она поддерживается форматом с плавающей запятой, иначе DBL_MAX. Эта функция подходит для реализации макроса ISO C HUGE_VAL.

Встроенная функция: float __builtin_huge_valf (void)

Аналогична __builtin_huge_val, но возвращаемый тип — float.

Встроенная функция: long double __builtin_huge_vall (void)

Аналогична __builtin_huge_val, но возвращаемый тип — long double.

Встроенная функция: _Floatn __builtin_huge_valfn (void)

Аналогична __builtin_huge_val, но возвращаемый тип — _Floatn.

Встроенная функция: _Floatnx __builtin_huge_valfnx (void)

Аналогична __builtin_huge_val, но возвращаемый тип — _Floatnx.

Встроенная функция: int __builtin_fpclassify (int, int, int, int, int, ...)

Эта встроенная функция реализует функциональность fpclassify из C99. Первые пять аргументов типа int должны соответствовать представлениям целевой библиотеки о возможных классах значений с плавающей запятой и используются в качестве возвращаемых значений. Они должны быть константами и указываться в следующем порядке: FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL и FP_ZERO. Многоточие обозначает ровно одно значение с плавающей запятой, подлежащее классификации. GCC рассматривает последний аргумент как аргумент с обобщённым типом, то есть не выполняет стандартное повышение типа float до double.

Встроенная функция: double __builtin_inf (void)

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

Встроенная функция: _Decimal32 __builtin_infd32 (void)

Аналогична __builtin_inf, но возвращаемый тип — _Decimal32.

Встроенная функция: _Decimal64 __builtin_infd64 (void)

Аналогична __builtin_inf, но возвращаемый тип — _Decimal64.

Встроенная функция: _Decimal128 __builtin_infd128 (void)

Аналогична __builtin_inf, но возвращаемый тип — _Decimal128.

Встроенная функция: float __builtin_inff (void)

Аналогична __builtin_inf, но возвращаемый тип — float. Эта функция подходит для реализации макроса ISO C99 INFINITY.

Встроенная функция: long double __builtin_infl (void)

Аналогична __builtin_inf, но возвращаемый тип — long double.

Встроенная функция: _Floatn __builtin_inffn (void)

Аналогична __builtin_inf, но возвращаемый тип — _Floatn.

Встроенная функция: _Floatn __builtin_inffnx (void)

Аналогична __builtin_inf, но возвращаемый тип — _Floatnx.

Встроенная функция: int __builtin_isinf_sign (...)

Аналогична isinf, но возвращаемое значение равно -1 для аргумента -Inf и 1 для аргумента +Inf. Обратите внимание: хотя список параметров представлен многоточием, эта функция принимает ровно один аргумент с плавающей запятой. GCC рассматривает этот параметр как параметр с обобщённым типом, то есть не выполняет стандартное повышение типа float до double.

Встроенная функция: double __builtin_nan (const char *str)

Это реализация функции ISO C99 nan.

Поскольку ISO C99 определяет эту функцию через strtod, которую мы не реализуем, необходимо описать разбор строки. Строка разбирается так же, как в strtol; то есть основание определяется по начальному префиксу «0» или «0x». Разобранное число помещается в значащую часть таким образом, чтобы младший бит числа совпадал с младшим битом значащей части. Число усекается, чтобы поместиться в предоставленное поле значащей части. Значащая часть принудительно задаётся как тихий NaN.

Если в эту функцию передан строковый литерал, который целиком был бы обработан функцией strtol, она вычисляется достаточно рано, чтобы считаться константой времени компиляции.

Встроенная функция: _Decimal32 __builtin_nand32 (const char *str)

Аналогична __builtin_nan, но возвращаемый тип — _Decimal32.

Встроенная функция: _Decimal64 __builtin_nand64 (const char *str)

Аналогична __builtin_nan, но возвращаемый тип — _Decimal64.

Встроенная функция: _Decimal128 __builtin_nand128 (const char *str)

Аналогична __builtin_nan, но возвращаемый тип — _Decimal128.

Встроенная функция: float __builtin_nanf (const char *str)

Аналогична __builtin_nan, но возвращаемый тип — float.

Встроенная функция: long double __builtin_nanl (const char *str)

Аналогична __builtin_nan, но возвращаемый тип — long double.

Встроенная функция: _Floatn __builtin_nanfn (const char *str)

Аналогична __builtin_nan, но возвращаемый тип — _Floatn.

Встроенная функция: _Floatnx __builtin_nanfnx (const char *str)

Аналогична __builtin_nan, но возвращаемый тип — _Floatnx.

Встроенная функция: double __builtin_nans (const char *str)

Аналогична __builtin_nan, но значащая часть принудительно задаётся как сигнальный NaN. Функция nans предложена в документе WG14 N965.

Встроенная функция: _Decimal32 __builtin_nansd32 (const char *str)

Аналогична __builtin_nans, но возвращаемый тип — _Decimal32.

Встроенная функция: _Decimal64 __builtin_nansd64 (const char *str)

Аналогична __builtin_nans, но возвращаемый тип — _Decimal64.

Встроенная функция: _Decimal128 __builtin_nansd128 (const char *str)

Аналогична __builtin_nans, но возвращаемый тип — _Decimal128.

Встроенная функция: float __builtin_nansf (const char *str)

Аналогична __builtin_nans, но возвращаемый тип — float.

Встроенная функция: long double __builtin_nansl (const char *str)

Аналогична __builtin_nans, но возвращаемый тип — long double.

Встроенная функция: _Floatn __builtin_nansfn (const char *str)

Аналогична __builtin_nans, но возвращаемый тип — _Floatn.

Встроенная функция: _Floatnx __builtin_nansfnx (const char *str)

Аналогична __builtin_nans, но возвращаемый тип — _Floatnx.

Встроенная функция: int __builtin_issignaling (...)

Возвращает ненулевое значение, если аргумент является сигнальным NaN, и ноль в противном случае. Обратите внимание: хотя список параметров представлен многоточием, эта функция принимает ровно один аргумент с плавающей запятой. GCC рассматривает этот параметр как параметр с обобщённым типом, то есть не выполняет стандартное повышение типа float до double. Эта встроенная функция может работать и без нестандартного параметра -fsignaling-nans, однако, если сигнальный NaN вычисляется, сохраняется или передаётся в качестве аргумента какой-либо функции, отличной от этой встроенной функции, в текущей единице трансляции безопаснее использовать -fsignaling-nans. При включённом параметре -ffinite-math-only эта встроенная функция всегда возвращает 0.

Встроенная функция: double __builtin_powi (double, int)
Встроенная функция: float __builtin_powif (float, int)
Встроенная функция: long double __builtin_powil (long double, int)

Возвращает первый аргумент, возведённый в степень, заданную вторым аргументом. В отличие от функции pow, никаких гарантий точности и округления не предоставляется.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/Floating_002dPoint-Format-Builtins.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API