在C/C++中快速实现/逼近pow()函数

我正在寻找更快的实现或cmath提供的函数的近似.

我需要加快以下功能

> pow(x,y)
> exp(z * pow(x,y))

其中z <0. x来自(-1.0,1.0),y来自(0.0,5.0)

解决方法:

以下是一些近似值:

> Optimized pow Approximation for Java and C/C++++.这种近似非常不准确,如果足够好,你必须自己尝试.
> Optimized Exponential Functions for Java.非常好!我用它作神经网络.

如果pow的上述近似值不够好,您仍然可以尝试用指数函数替换它,具体取决于您的机器和编译器,这可能会更快:

> x ^ y = e ^(y * ln(x))
>结果:e ^(z * x ^ y)= e ^(z * e ^(y * ln(x)))

另一个技巧是当公式的某些参数不经常改变时.如果是,例如x和y大多数是常数,你可以预先计算x ^ y并重复使用它.

上一篇:python-取消numpy数组操作(包括标量)


下一篇:如何将Python十进制转换为SQLite数字?