IEEE binary32(单精度)次正规数的绝对舍入误差

时间:2018-10-08 00:51:30

标签: floating-point ieee-754 rounding-error

我正在编写一个C程序,用于测试单精度浮点数的运算。特别是,我想知道绝对舍入误差是否与x(二进制32正常范围内的数字)相关联:

|回合(x)-x | <机器ε* 2 ^ E

对于次正规数也适用。我的结论是,是的,但是我找不到任何辅助消息来源来确认我是对的。

我的结论正确吗?

1 个答案:

答案 0 :(得分:0)

对于次正规结果,将实数四舍五入到最接近的可表示IEEE-754二进制浮点数的最大潜在绝对误差与在最小标准binade中产生的最大潜在绝对误差相同。

也就是说,最小法向binade和次正规数在浮点表示中均具有相同的指数,因此其有效位的最低有效位具有相同的位置值。 (此处指的“相同指数”是数学指数,基本32位格式为-126,基本64位格式为-1022。它不是指数的编码,对于最小法线为1 binade和0(表示次法线)。最低有效位的位置值确定最大可能的误差。由于次标准值与最小二合一中的值相同,因此它们具有相同的潜在误差。

如果 E 是格式或下限(log 2 (| x |))的最小指数中的较大者,则 x 为实数round( x )是将 x 转换为浮点格式的结果,并且是机器epsilon(精度最低的单位为1),然后:

  

| round( x )− x | <2 E

用于任何舍入模式,并且:

  

| round( x )− x | ≤½2 E

用于任何从最近到最近的模式(例如从最近到最近的关系到偶数)。

对于有向舍入模式,例如round-toward-negative-infinity,误差满足以下任一条件:

  

0≤round( x )− x <2 E

或:

  

− 2 E x )− x ≤0,

当然取决于方向。 (对所有实数,从零到零都不能满足上述两个关系,但是根据 x 的符号,当然可以满足其中至少一个。)