编程语言
首页 > 编程语言> > Java中的快速第n个根

Java中的快速第n个根

作者:互联网

参见英文答案 > Custom math functions vs. supplied Math functions?                                    5个
在我的Java程序中,我必须经常计算a ^ b,其中a≥0且0≤b<1. 1.我对Math.pow(a,b)的速度不满意.是否有任何算法可能比Math.pow更快(以某种精度为代价)?

解决方法:

您需要精确的结果,还是只需要近似值?

如果有一个确切的结果:这很难.

如果您只想要近似值:尝试使用第N个根算法进行修复点迭代as described on wikipedia.

然后,您可以浪费尽可能多的时钟周期用于您的nth-root近似,因为您认为适合您的应用.

但我猜Math.pow已经为你做了.如果你想更快地完成它,你必须投入一些繁重的工作.即使在C语言中(我知道比Java更好),我认为编写一个非常快速的修复点迭代的快速变体并不是最简单的任务(如果我一直在进行第n次根计算,那么它们就是绝对的瓶颈,我会求助于多线程,如果可能的话,使用SIMD / AVX指令做很多工作 – 甚至是OpenCL / CUDA.

标签:numerical-methods,java,math
来源: https://codeday.me/bug/20190828/1753353.html