C11 (和更新版本):
7.12.13浮点乘加
IEEE 754-2008:
融合乘法加法,
fusedMultiplyAdd
融合相加
为什么C11 (和更新的)使用“浮动乘法-添加”而不是“融合乘法-添加”?
这个“漂浮”是从哪里来的?
发布于 2022-02-02 22:30:43
这很可能是将这些算术操作引入语言的技术报告中的一个错误。
通过一些侦探工作,我们可以找到C11的“浮动乘法-添加”的根源,并找出一个不一致的地方,很大程度上暗示了这个命名只是一个疏忽。WG14的N1154 (支持十进制浮点算法的C语言扩展)从2006年开始,习惯性地将该操作描述为一个融合的乘法加法运算:
9算术运算 ..。 9.2职能 定义在IEEE754R中的十进制浮点运算平方根、最小、最大、融合乘法加法和余数作为库函数实现。
只是为了替换(可以说是错误的),在库概要中浮动来替换相关的函数原型。可以说,在对包含函数原型中缩写的f名称中的库概要进行评审时容易忽略的一个疏忽,很容易被误解为“浮动”,而不是其实际含义“融合”。
10图书馆 10.1十进制数学 数学库中指定的基本函数列表被扩展到处理十进制浮点类型。其中包括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和7.12.13中指定的函数。 ..。 建议修改C99: 将以下函数原型列表添加到相应分句的概要中: ..。 7.12.13浮点乘加 _Decimal64 fmad64(_Decimal64 x,_Decimal64 y,_Decimal64 z);_Decimal32 fmad32(_Decimal32 x,_Decimal32 y,_Decimal32 z);_Decimal128 fmad128(_Decimal128 x,_Decimal128 y,_Decimal128 z);
https://stackoverflow.com/questions/70955619
复制相似问题