【问题标题】:Getting incorrect answer for ULP error of double对双倍的 ULP 错误得到不正确的答案
【发布时间】:2021-09-30 20:48:10
【问题描述】:

我正在了解双重的 ULP 错误。我正在看一个示例,其中精确值和计算值是:

exact: 0|01111100010|1110101100000111111001001001011110001000000000111110
compt: 0|01111100010|1110101100000111111001001001011110001000000001000100

ULP 的答案是 6 ULP。我不太明白这是怎么回事。在 0111110 和 1000100 之间,我只能数 5 个双精度数:

0111110 - start
0111111 - 1
1000000 - 2
1000001 - 3
1000010 - 4
1000011 - 5
1000100 - end

我想我在这里犯了一些非常简单的错误。有什么指点吗?

【问题讨论】:

  • 把“start”换成0,把“end”换成6,就有答案了。
  • Quang,考虑0111110 - start0111111 - 1 的情况。 ULP 有什么区别:1 还是 0?
  • @njuffa 啊...我明白了...
  • @chux-ReinstateMonica 在您提供的情况下应该是 1。这让我现在更清楚了 - 谢谢!随意把它变成一个答案,我会接受它:)
  • @QuangThinhHa 也许比post your own answer 更好。

标签: floating-point


【解决方案1】:

显然我在计算时犯了一个错误。应该是:

0111110 - 0
0111111 - 1
1000000 - 2
1000001 - 3
1000010 - 4
1000011 - 5
1000100 - 6 <---------- the expected answer.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    相关资源
    最近更新 更多