Mat*_*ins 8 java math function floating-accuracy pow
我的程序用来Math.pow()计算一个相对较大的双数到2的幂.后来我需要找到一个非常大的双数的平方根.问题是,我必须做超过100,000次,这需要很长时间.有没有可以加速这个过程的替代方案?谢谢
编辑:大数字我的意思是1000到10000(所以在计算方面可能不是那么大).就需要花费很长时间而言,功能需要大约30秒才能完成500次
"2的力量"正在变平.你最好通过将数字乘以它来做到这一点.
库版本sqrt可能比你在其他地方挖掘的任何东西都要快.如果您调用C例程,则只会增加跨语言调用的开销.但是你需要准确的平方根,还是表格查找近似值呢?值是否重复,即您是否经常需要计算相同数字的根?如果是这样,将a中的平方根缓存HashMap可能比计算它们更快.
您不太可能找到比Java Math更好(更快)的实现.您可能有更多的运气试图改变算法中的计算方式.例如,有什么方法可以避免找到一个庞大数字的平方根?
如果这不起作用,您可以尝试使用更适合快速数学计算的语言(如Matlab)来实现它.
否则,您可以尝试在其他区域进行优化.如果稍后有用,您可以尝试缓存过去的结果.