是否有快速实现log1p功能?

时间:2011-12-01 18:16:12

标签: java math

我想为Java提供快速的log1p函数。 Java有Math.log1p,但显然对我的需求来说太慢了。

我在这里找到了log1p的代码:

http://golang.org/src/pkg/math/log1p.go

用于GO语言。

它与Java中的相同,还是更快? (假设我把它翻译成java)。 有人知道log1p的其他一些快速实现吗?

感谢。

1 个答案:

答案 0 :(得分:0)

log1p(x) = Math.log(x+1)以来,找到自然对数快速算法就足以满足您的需求。

  

Java中的快速自然对数

     

我在这里找到了以下近似值,并没有多少   有关它的信息,除了它被称为“Borchardt的算法”   它出自“Dead Reconing:计算没有   仪器”。近似值不是很好(有些人可能会说非常好   坏...),价值越大,情况越糟。但近似值   也是一个单调,缓慢增加的功能,这是足够好的   对于我的用例。

     

public static double log(double x){       返回6 *(x - 1)/(x + 1 + 4 *(Math.sqrt(x))); }

     

这种近似值比Math.log()快11.7倍。

请参阅this网站。另外,a performance comparison for math libraries in java.

但是你需要可能是链接到c ++编译的东西,详细here