以下是引用zklhp在2012-9-24 09:33:16的发言:
目前的计算机里面 这样的东西其实都是CPU的协处理器算的 有专门的指令算这些对数啦 三角函数 一类的 所以不知道怎么算也可以 因为CPU算好了
cpu 的求法是先用 以2为底的幂 约化参数,使之归到一个离1很近的区间。然后应用一个相对复杂的二阶展式计算(比泰勒展式收敛速度快)。
由于约化了区间,可以使用先验精度估计,计算固定次数获得结果从而避免循环。
理论是:ln(x) = ln(2^k * x') = kln2 + ln x'。其中 k 是一个整数,使得 2^k * x' == x,且 0 < x' < 2。(选用整数是因为 2 的整数次幂可以高速算得。)这样由于 ln2 是个常数。就可以把计算任意自然对数,化成计算一个小区间内的自然对数。
计算其它底数的对数,使用换底公式,统一换化到计算自然对数就可以了。
硬件的这个算法,也可以使用编程语言实现。不过肯定还是没有硬件逻辑快,估计能差个几百倍吧。
[
本帖最后由 pangding 于 2012-9-24 10:14 编辑 ]