Binary 请解释Goldberg 91中的定理7

Binary 请解释Goldberg 91中的定理7,binary,floating-point,rounding,ieee-754,divide,Binary,Floating Point,Rounding,Ieee 754,Divide,定理7 当β=2时,如果m和n是| m |

定理7

当β=2时,如果m和n是| m |<2^(p-1)的整数,且n具有特殊形式n=2^i+2^j,则(mn)n=m,前提是浮点运算是精确四舍五入的


如果我把全部证据都贴在这里,它会很长,很难看。因此,请单击右侧的链接,按ctrl+F,然后找到
定理7
。就在那里

好的,我必须说,至少从我自己的角度来看,定理7的证明太奇怪了,难以理解,尽管作者声称它很巧妙

我唯一能理解的是,
m在二进制点的右边最多有1位。是的,我知道,但是为什么
那么n*qbar会变成m
?我也不能理解所谓的“中间方案”以及从那句话开始的几乎所有事情

欢迎任何帮助,提前谢谢

编辑:

有趣的是,下面的第一条评论一下子解决了我所有的问题,第二条评论建议我缩小我的文章范围

对。要求一个人解释全部证据是不人道的。现在我的问题是:

为什么
初始未标度m的低阶位为0
(见公式9下面的段落)?最高有效位不应该是零而不是最低有效位吗?这与“大端”或“小端”有关吗?

首先,让我们用2来缩放n。n应大于或等于2^p-1,小于2^p。标度n将由n'捐赠。缩放不会有任何区别。指数是被修改的,因为数字是二进制的,我们只需要关注有效位/尾数

接下来,m被缩放,产生m',因此
q'=m'/n'
,小于1,大于1/2(事实上,我认为应该有
1/2
)。这样的缩放是可能的,因为上界是下界的两倍,β=2

如我们所见,
2^p-1≤ n'<2^p
1/2
,而
m'=q'*n'
。由于q'和n'为正,m'的最大值是n'和q'最大值的乘积,即
2^p*1=2^p
。同样,m'的最小值是
2^p-1*1/2=2^p-2

既然
2^p-2
,我们可以说
p-2
,那么二进制点右侧的位数将是p-1(当
log2(m')
在p-2和p-1之间时发生)或p(当
log2(m')
大于或等于p-1时)。因此,m'在二进制点的右边最多有一位

正如马克·迪金森(Mark Dickinson)所说,因此,m'和下一个精度p浮动上/下之间的差值至少为1/2。所以为了表示一个量将四舍五入到m',就足以表示它在m'的1/4之内

除此之外,“中间情况”,即数量正好是m的1/4的情况,值得单独讨论:由于初始未标度的m具有
|m |<2*p-1
,因此它至少在二进制点右侧有一位,原因与上述相同。m是一个整数,因此二进制点右边的所有数字都是零。当然,出于这个原因,它的低阶位是0。因为缩放对有效位/尾数没有影响,所以m'的低位也是0

因此,使用舍入到偶数,这是原作者通过写“在本文的其余部分中,将使用舍入到偶数”而采用的。上面(您可以再次使用ctrl+F来查找它),m'+1/4(二进制中的0.01)将舍入到m',因为0是偶数

也就是说,如果q̄=mn,证明定理需要证明

|n'*q̄-m'|≤ 1/4

更新1 q'是一个有理数,并且q'<1,所以我们可以假设q'=0.q1 q2。。。在二进制中,其中qi,其中i=1,2,3。。。是包含0或1的单个数字。设q̂=0.q1 q2。。。qp 1。小心,这个标记是“q-hat”,而不是“q-bar”,它是我刚刚引入的一个新变量

现在,如果我们将q̂左移p+1位,我们将得到一个整数,即q1 q2。。。qp 1,因为所有位都在二进制点的左侧。我以后会用N来表示这个整数。因此,
|q̂-q'|=|N/2^(p+1)-m'/N'|

N的低位是1,因此我们知道
N=1+(qp*2^1+qp-1*2^2+…+q1*2^p)
。显然,N是一个奇数整数。最初,
n=2^i+2^j
。因为缩放一个数字只是将其乘以或除以2,所以n'仍然是2的两个指数之和。让它们成为
n'=2^i'+2^j'
。为了方便起见,假设
i≥ j'

2^p-1≤ n'<2^p
,所以
2^p-1≤ 2^i'+2^j'<2^p
。因此,占n'较高比例的i'必须是p-1。要使n'小于2^p,j'必须不等于i'。为了可读性,让k=j',所以k≤ p-2。因此,

。(将所有n替换为n',m替换为m')

我建议你自己用一些草稿纸来验证这个公式

更新2 看看分子
|(2^(p-1-k)+1)*N-2^(p+1-k)*m'
。正如我们已经证明的,
k≤ p-2,所以p-1-k≥ 1
,确保
2^(p-1-k)
2^(p+1-k)
是均匀的。
(2^(p-1-k)+1)
N
都是奇数,因此
(2^(p-1-k)+1)*N
是奇数,而
2^(p+1-k)*m'
是偶数,奇数不能等于偶数。因此,
(2^(p-1-k)+1)*N-2^(p+1-k)*m'
是一个非零整数。它的绝对值,即分子,因此保证等于或大于1。因此,

| q̂-q'|≥ 1/(n'*2^(p+1-k))

q'<1
q̄<1
,所以
q'*q̄<1
。作为一个