【问题标题】:Approximate logarithm uses inaccurate approximation for log_2(1+x)-x but it still works近似对数对 log_2(1+x)-x 使用不准确的近似值,但它仍然有效
【发布时间】:2018-01-12 22:20:42
【问题描述】:

this 文章中,g(z) = log_2(1 + x) - x 的有理逼近 f(z) 用于 fastlog2,但在绘制 f(z)g(z) 时,它们看起来非常不同。

奇怪的是fastlog2 的结果非常准确。如果我将f(z) 调整为更接近g(z)(抛物线),结果会变得非常不准确。

我的问题是:

为什么f(z) 的结果与g(z) 截然不同,为什么fastlog2 的结果非常准确?您如何找到f(z) 以获得更高的准确度?

【问题讨论】:

  • 你错过了 hack 部分,其中表示浮点数的位被重新解释为整数并进行各种旋转。 log₂ 没有好的近似值将是一条抛物线。
  • @Ryan 是正确的。您忽略了使这项工作发挥作用的位移魔法。
  • 谢谢,您帮助我了解了我所缺少的内容。但我想到了另一个问题:在文章中,指数被替换为 -1,导致 0.5*(x + 1)。难道不能直接把指数换成0,然后减去1得到尾数再近似吗?

标签: math logarithm approximation


【解决方案1】:

在 cmets 的帮助下,我意识到我的错误是什么,并相应地调整了公式,从而得到了预期的结果:

【讨论】:

    猜你喜欢
    • 2011-10-22
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 2020-04-01
    • 1970-01-01
    相关资源
    最近更新 更多