我需要经常从 java 计算 Math.exp()
,是否有可能让 native 版本比 java 的 Math 运行得更快.exp()
??
我只尝试了 jni + C,但它比普通的 java 慢。
最佳答案
这已经被要求多次(参见例如 here )。这是 Math.exp() 的近似值,复制自 this blog posting :
public static double exp(double val) {
final long tmp = (long) (1512775 * val + (1072693248 - 60801));
return Double.longBitsToDouble(tmp << 32);
}
它基本上与具有 2048 个条目和条目之间的线性插值的查找表相同,但所有这些都使用了 IEEE 浮点技巧。它比我机器上的 Math.exp() 快 5 倍,但如果您使用 -server 编译,这可能会有很大差异。
关于java - 通过 JNI 更快的 Math.exp()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66402/