【发布时间】: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