当前位置:  开发笔记 > 人工智能 > 正文

如何计算指数?

如何解决《如何计算指数?》经验,为你挑选了1个好方法。

我试图确定我的一个算法的渐近运行时间,它使用指数,但我不确定如何以编程方式计算指数.

我特意寻找用于双精度浮点数的pow()算法.



1> Chris Jester..:

我有机会看看fdlibm的实现.评论描述了使用的算法:

 *                    n
 * Method:  Let x =  2   * (1+f)
 *      1. Compute and return log2(x) in two pieces:
 *              log2(x) = w1 + w2,
 *         where w1 has 53-24 = 29 bit trailing zeros.
 *      2. Perform y*log2(x) = n+y' by simulating muti-precision
 *         arithmetic, where |y'|<=0.5.
 *      3. Return x**y = 2**n*exp(y'*log2)

然后列出所有处理的特殊情况(0,1,inf,nan).

在所有特殊情况处理之后,代码中最激烈的部分涉及log22**计算.其中任何一个都没有循环.因此,尽管浮点基元的复杂性,它看起来像渐近恒定时间算法.

我们欢迎浮点专家(我不是其中一位)发表评论.:-)

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有