fdim 缩写代表什么?

Pyo*_*oz_ 5 c math floating-point acronym

所有 C 数学函数似乎都有一个可以理解的名称,但我找不到 fdim 缩写代表什么。(fdim 计算两个浮点输入的正差)。

nju*_*ffa 5

我搜索了 ISO-C 工作组的文档档案,并注意到大多数关于 C99 浮点增强的提案都是由 Jim Thomas 贡献的。据我所知,fdim它已包含在 1996 年之前的新标准草案中,遗憾的是,该档案没有提供当时提案的电子副本链接。

\n\n

因此,我直接通过电子邮件联系了托马斯先生,并收到了回复,在他的许可下,我在此引用了其中的相关部分:

\n\n
\n

发件人:Jim Thomas
\n 收件人:Norbert Juffa
\n 时间:2020 年 2 月 15 日星期六上午 8:42
\n 主题:回复:ISO-C99 中 fdim() 函数的命名和基本原理
\n [。 ..]
\n C fdim 函数是 Fortran DIM(正差)函数的 C 版本。C 函数及其名称旨在供程序员将代码从 Fortran 移植到 C。

\n
\n\n

这证实了评论中提到的与 Fortran 的联系。至于名称DIM本身,Ctx 的答案解决了这个问题,以及人们对已经存在了 50 年的次要功能的期望。

\n\n

在问题下方的评论中,Mark Dickinson指出了Fortran 66 标准,该标准在第 23 页将 Fortran 函数定义DIMa\xe2\x82\x81 - Min (a\xe2\x82\x81, a\xe2\x82\ x82)。这进一步证明该名称是DI fference 和MDIM inimum的缩写。

\n


Lun*_*din 1

我找不到任何好的已发布的第一个来源。fdim最早出现在C99中,C99原理(7.12.12)只提到了这一点:

fmax、fmin 和 fdim 的名称具有 f 前缀,以允许遵循 fabs 和 abs 示例的扩展整数版本。

但我们已经可以猜到了,f浮点数的代表。

同样,最后一个finfdimf代表float,最后一个linfdiml代表long double。这些前缀/后缀字母通常在标准库中使用。