我正在寻找一个Java库来计算gamma,beta,erf,贝塞尔特殊功能(以及一些相关功能),以便将其包含在我们自己的公式解析器中。数值精度是首要任务-这是一个科学程序。而且它必须是开源的,并且可以免费用于商业用途(例如Apache和BSD许可证)。
我以为我很快就会发现像JAMA库这样的“经典”,“引用”实现是针对矩阵运算的,但到目前为止我还找不到。我们只需要特殊的功能评估,不需要任何其他库功能。
我发现的第一个是 Apache Common Math ,但我看到beta函数的准确性很差:
http://commons.apache.org/proper/commons-math/userguide/special.html。
然后我找到了 Colt 。看起来不错,但我不确定开发人员和用户是否已经对其进行了正确的测试(一些很少使用的代码可能会因错误而从某处复制,等等)。
任何建议将不胜感激。
最佳答案
首先:不要被网页的原始外观和Colt库(以及基于它的JET和JAS库)的旧发行日期所迷惑。它已用于无止境的研究项目中,并且该代码已被数百位非常有才华的人验证。
当然,如果您自己的产品的信誉受到威胁,您不应该只相信我的话。这里有两个想法,您可以自己感受一下正确性:
如果您真的不想使用Colt(我想这是您的问题),建议您自己移植数字食谱书(http://www.nrbook.com)中的C/C++代码。通常并不需要太多采用,但是您仍然需要考虑如何测试它。