Floating point 包含相对误差和ulp的不等式

Floating point 包含相对误差和ulp的不等式,floating-point,Floating Point,以下引文摘自第8页,共页。有人能解释一下不等式中涉及1/2 ulp的最后一个等式是如何产生的吗 要计算对应于1/2 ulp的相对误差,请观察当实数近似于最接近的可能浮点数时 绝对误差可以大到 其中β′是数字β/2。这个错误是错误的 由于表格中的数字都具有相同的绝对误差,但其值范围在β^e和βxβ^e之间,因此相对误差范围在 和。就是 这一行试图说明半个ULP对应的相对误差在所示的两个界限之间,这两个界限是在前面几行中计算的。然而,与其说半个ULP对应的相对误差在这些界限之间,不如说半个UL

以下引文摘自第8页,共页。有人能解释一下不等式中涉及1/2 ulp的最后一个等式是如何产生的吗

要计算对应于1/2 ulp的相对误差,请观察当实数近似于最接近的可能浮点数时

绝对误差可以大到

其中β′是数字β/2。这个错误是错误的

由于表格中的数字都具有相同的绝对误差,但其值范围在β^e和βxβ^e之间,因此相对误差范围在

和。就是


这一行试图说明半个ULP对应的相对误差在所示的两个界限之间,这两个界限是在前面几行中计算的。然而,与其说半个ULP对应的相对误差在这些界限之间,不如说半个ULP在这些界限之间。这是一个错误,除非我们不清楚“ULP”的含义。我会写“1/2 ULP/x”,而不是该行中的“1/2 ULP”,其中x是正在考虑的数字


(事实上,当我写ULP时,我经常写ULP(x)来表示ULP是一个特定值的ULP,因为最后一位的单位值随数字的不同而变化。)

这在前面的几行中有解释。当然,当x是两个ULP(x)的幂时仍然模棱两可。@RickRegan:ULP被明确定义为最后一个单元。它不定义为到另一个可表示值的距离。它的定义没有歧义。那么什么是ULP(2^53)?是1号还是2号?@RickRegan:是2号。由于IEEE-754 64位二进制浮点有53位有效位(52位直接编码,一位复杂),最后一位是第一位“下方”的52位。对于253,最高位的值为253。因此,最后一位的值为2**(53-52)=2**1=2。有一次,如果x不是一个可表示的值,那么ULP(x)可能存在一些不确定性。例如,我们正在做一个证明,某一步的数学结果是x,x非常接近2的某个幂,但小于它。当我们讨论这个值的ULP时,我们是指它在数学上的“二进制”的ULP(低于所讨论的二次幂的一个)还是四舍五入到浮点格式时它将被四舍五入到的值的ULP?然而,这是一个由证据作者解决和澄清的问题。对于可表示的值,这是毫无疑问的。