【问题标题】:Where in the IEEE 754 standard is the result of `Inf * 0` specified?IEEE 754 标准的哪里指定了“Inf * 0”的结果?
【发布时间】:2021-07-15 07:36:26
【问题描述】:

IEEE 754-2019 标准的第 6.1 节规定:

浮点算术中的无穷大行为源自具有任意大操作数的实数算术的限制情况,当存在这种限制时。无穷大应在仿射意义上解释,即:−∞

但是,在我使用Inf * 0 = NaN 的所有实现中,这似乎与引用的文本相矛盾。

在 IEEE 754 标准中的什么地方指定了Inf * 0 的结果?

【问题讨论】:

  • 这能回答你的问题吗? Why is Infinity × 0 = NaN?
  • 不存在矛盾,因为 Inf*0 没有限制意义。例如,如果 x[n] = n,则 x->inf。对于任何 a 如果 y[n]=a/n 则 y->0。但是 x[n]*y[n] = a 所以 x*y->a.
  • 如果 y[n] = 0 * n,则 y -> 0。这个推理有什么问题?

标签: floating-point precision numeric ieee-754


【解决方案1】:

IEEE 754-2008 7.2 说:

当且仅当没有有用的可定义结果时,才会发出无效操作异常。在这些情况下 操作数对于要执行的操作无效。

对于产生浮点格式结果的操作,指示无效操作异常的操作的默认结果应是一个安静的 NaN,它应该提供一些诊断信息(见 6.2)。这些操作是:


b) 乘法:乘法(0, ∞) 或乘法(∞, 0)

754-2019 的接近最终草案与上面引用的部分相同。

【讨论】:

  • 非常感谢!
猜你喜欢
  • 2019-05-11
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-06
  • 2021-06-12
  • 2015-12-14
相关资源
最近更新 更多