术语:为什么 "floating multiply-add" 而不是 "fused multiply-add"?
Terminology: why "floating multiply-add" instead of "fused multiply-add"?
C11(及更新版本):
7.12.13 Floating multiply-add
IEEE 754-2008:
fused multiply add,
fusedMultiplyAdd
fused multiply-add
为什么 C11(和更新版本)使用“浮动乘加”而不是“融合乘加”?
这个“浮动”从何而来?
这很可能是将这些算术运算引入语言的技术报告中的一个错误
通过一些侦探工作,我们可能会深入挖掘 C11 的“Floating multiply-add”的根源,并找出一个非常暗示此命名只是疏忽的差异。 WG14's N1154(编程语言 C 的扩展以支持十进制 floating-point 算术 )从 2006 年开始,惯用地将操作描述为 融合 multiply-add算术运算:
9 Arithmetic Operations
[...]
9.2 Functions
The decimal floating point operations square root, min, max, fused
multiply-add and remainder, which are defined in IEEE 754R, are
implemented as library functions.
仅在相关函数原型的库概要中用 floating 替换(可以说是错误的)fused。在审查库概要时很容易遗漏一个疏忽,因为包含函数原型的缩写 fmad
名称中的 f
很容易被误解为“浮动”,而不是其实际含义“融合”。
10 Library
10.1 Decimal mathematics <math.h>
The list of elementary functions specified in the mathematics library
is extended to handle decimal floating-point types. These include
functions specified in 7.12.4, 7.12.5, 7.12.6, 7.12.7, 7.12.8, 7.12.9,
7.12.10, 7.12.11, 7.12.12, and 7.12.13
[...]
Suggested changes to C99:
Add the following list of function prototypes to the synopsis of the
respective subclauses:
[...]
7.12.13 Floating multiply-add
_Decimal64 fmad64(_Decimal64 x, _Decimal64 y, _Decimal64 z);
_Decimal32 fmad32(_Decimal32 x, _Decimal32 y, _Decimal32 z);
_Decimal128 fmad128(_Decimal128 x, _Decimal128 y, _Decimal128 z);
C11(及更新版本):
7.12.13 Floating multiply-add
IEEE 754-2008:
fused multiply add,
fusedMultiplyAdd
fused multiply-add
为什么 C11(和更新版本)使用“浮动乘加”而不是“融合乘加”?
这个“浮动”从何而来?
这很可能是将这些算术运算引入语言的技术报告中的一个错误
通过一些侦探工作,我们可能会深入挖掘 C11 的“Floating multiply-add”的根源,并找出一个非常暗示此命名只是疏忽的差异。 WG14's N1154(编程语言 C 的扩展以支持十进制 floating-point 算术 )从 2006 年开始,惯用地将操作描述为 融合 multiply-add算术运算:
9 Arithmetic Operations
[...]
9.2 Functions
The decimal floating point operations square root, min, max, fused multiply-add and remainder, which are defined in IEEE 754R, are implemented as library functions.
仅在相关函数原型的库概要中用 floating 替换(可以说是错误的)fused。在审查库概要时很容易遗漏一个疏忽,因为包含函数原型的缩写 fmad
名称中的 f
很容易被误解为“浮动”,而不是其实际含义“融合”。
10 Library
10.1 Decimal mathematics <math.h>
The list of elementary functions specified in the mathematics library is extended to handle decimal floating-point types. These include functions specified in 7.12.4, 7.12.5, 7.12.6, 7.12.7, 7.12.8, 7.12.9, 7.12.10, 7.12.11, 7.12.12, and 7.12.13
[...]
Suggested changes to C99:
Add the following list of function prototypes to the synopsis of the respective subclauses:
[...]
7.12.13 Floating multiply-add
_Decimal64 fmad64(_Decimal64 x, _Decimal64 y, _Decimal64 z); _Decimal32 fmad32(_Decimal32 x, _Decimal32 y, _Decimal32 z); _Decimal128 fmad128(_Decimal128 x, _Decimal128 y, _Decimal128 z);