浮点减法身份

问题描述 投票:0回答:2

据我了解,在IEEE浮点中,以下标识确实总是适用:

x - 0.0 == x

但是由于与零号有关的问题,以下数学标识不一定总是适用:

0.0 - x == -x

这是正确的吗?

floating-point language-agnostic ieee-754
2个回答
0
投票
(+ 0)−(+0)在向-∞舍入时返回(−0),但在所有其他舍入模式下返回(+0)。因此,用x - 0.0替换x将提供逐位相同的结果

仅当朝-∞(“ down”)的舍入模式被排除时。但是,由于(-0)和(+0)在IEEE-754语义下比较相等,因此x - 0.0 == x将在所有舍入模式下成立。

-(+ 0)导致(-0),而(+0)-(+0)在除向-∞取整以外的所有取整模式下返回(+0)。因此,仅当舍入模式朝向-∞(“向下”)时,用0.0 - x替换-x才能提供逐位相同的结果。但是,由于(-0)和(+0)在IEEE-754语义下比较相等,因此0.0 -x == -x将在所有舍入模式下成立。

就位等式(而不是浮点式比较)而言,还应注意,在IEEE-754(2008)中,

negate

操作是(如absolute value copysign操作)在位字符串操作方面进行了定义,因此将修改NaN的“符号位”(请参阅​​标准的6.3节)。在实现NaN有效载荷直通的平台上,如果x是NaN,则在零级别上求和和取零的结果不同。

0
投票
您是正确的。
© www.soinside.com 2019 - 2024. All rights reserved.