Floating-point extensions part 1: binary floating-point arithmetic
From cppreference.net
<
c
|
experimental
C语言浮点扩展第1部分:二进制浮点运算(ISO/IEC TS 18661-1:2014)根据ISO/IEC/IEEE 60559:2011(当前IEEE-754修订版)的建议,为C标准库定义了以下新组件
|
__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)
|
若信令NaN参数导致抑制静默NaN的函数(如
hypot
或
fmax
)引发FE_INVALID并返回静默NaN时,则定义为整型常量1
(宏常量) |
|
(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)
|
适用于fromfp系列函数的舍入方向,用于ceil、floor、trunc、round和roundeven函数
(宏常量) |
|
FP_LLOGB0
(FP Ext 1 TS)
|
当参数为零时
llogb
返回的值
(宏常量) |
|
FP_LLOGBNAN
(FP Ext 1 TS)
|
当参数为 NaN 时
llogb
函数的返回值
(宏常量) |
|
(FP Ext 1 TS)
|
分别表示 float、double、long double 类型的信令 NaN
(宏常量) |
|
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 的通用重载
llogb
(函数) |
|
fmaxmag
(FP Ext 1 TS)
|
fmaxmag 的泛型重载
fmaxmag
(函数) |
|
fminmag
(FP Ext 1 TS)
|
fminmag 的泛型重载
fminmag
(函数) |
|
nextup
(FP Ext 1 TS)
|
nextup 的泛型重载
nextup
(函数) |
|
nextdown
(FP Ext 1 TS)
|
nextdown 的泛型重载
nextdown
(函数) |
|
fromfp
(FP Ext 1 TS)
|
fromfp 的通用重载
fromfp
(函数) |
|
ufromfp
(FP Ext 1 TS)
|
ufromfp 的通用重载
ufromfp
(函数) |
|
fromfpx
(FP Ext 1 TS)
|
fromfpx 的通用重载
fromfpx
(函数) |
|
ufromfpx
(FP Ext 1 TS)
|
ufromfpx 的通用重载
ufromfpx
(函数) |
|
nextdown
(FP Ext 1 TS)
|
nextdown 的泛型重载
nextdown
(函数) |
|
totalorder
(FP Ext 1 TS)
|
totalorder 的泛型重载
totalorder
(函数) |
|
totalordermag
(FP Ext 1 TS)
|
totalordermag 的泛型重载
totalordermag
(函数) |
|
fadd
(FP Ext 1 TS)
|
fadd
的通用重载
(函数) |
|
dadd
(FP Ext 1 TS)
|
dadd
的通用重载
(函数) |
|
fsub
(FP Ext 1 TS)
|
fsub的通用重载
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 函数在设置静态舍入模式时,会优先遵循静态舍入模式而非动态舍入模式。
|
本部分内容尚不完整
原因:应添加至编译指示页面或在此处完整描述该编译指示? |