Joh*_* Li 2 floating-point precision floating-accuracy
给定两个浮点数 x 和 y,假设所有浮点运算都符合 IEEE754 标准,以及平方根函数 sqrt() 的某种实现,
设 a、b 是两个(精确)实数,并且 x = op(a)、y = op(b),其中 op() 表示将实数舍入为其浮点表示形式。那么下面的问题:(*表示浮点乘法)
如果对于上述部分或全部问题,答案是否定的,那么
IEEE 754 要求符合要求的实现提供平方根和从十进制转换为正确舍入的浮点数的运算:
\n\n\n\n\n除下述情况外,所有符合本标准的实现都应为所有支持的算术格式提供本节中列出的操作。返回本标准指定的数字结果的每个计算操作都应执行,就像它首先生成一个精确到无限精度且具有无界范围的中间结果一样,然后在必要时对该中间结果进行舍入以适合目标\ xe2\x80\x99s 格式\xe2\x80\xa6
\n
最常用的舍入模式舍入到最接近的可表示值。如果出现平局,则四舍五入到偶数低位的值。该舍入的一个变体远离零。
\n\n关于问题1 ,假设x<but> 。由于平方根是单调的,因此要么必须更接近于 的数学平方根,要么必须更接近于的数学平方根。所以这会违反舍入规则。ysqrt(x)sqrt(y)sqrt(x)ysqrt(y)sqrt(y)xsqrt(x)
其他舍入规则在特定方向上舍入到最接近的数字,其中之一是朝向 +无穷大、朝向 \xe2\x88\x92infinity 或朝向零。无序的sqrt结果也会违反这些舍入规则。
请注意,许多平台会声称使用 IEEE 754 格式,但这并不意味着它们符合 IEEE 754 运算规则,包括平方根和从十进制到浮点的转换。
\n\n问题2是相同的。
\n\n问题 3 具有相同的推理(应用两次:op是弱单调的,并且sqrt是弱单调的),但条件是a和b是非负的(或者即使a [or b ]的量值很小,x[or ]为零)为负数,因为转换过程中进行舍入)。否则,您可能有a < b,但不成立,因为是 NaN,它不小于或等于任何值。ysqrt(x) <= sqrt(y)x
问题 4 成立,现在应用了 3 次弱单调性。
\n| 归档时间: |
|
| 查看次数: |
414 次 |
| 最近记录: |