IEEE 754 标准将负零的平方根定义为负零。这个选择很容易合理化,但其他选择,例如定义sqrt(-0.0)
为NaN
,也可以合理化并且更容易在硬件中实现。如果担心程序员会编写if (x >= 0.0) then sqrt(x) else 0.0
并被这个评估为NaN
when x
is的表达式咬住-0.0
,那么sqrt(-0.0)
可以定义为+0.0
(实际上,对于这个特定的表达式,结果会更加一致)。
是否有一种数值算法,特别是sqrt(-0.0)
定义为-0.0
简化算法本身的逻辑?