我尝试了以下代码:
# include <stdio.h>
# include <gsl/gsl_sf_bessel.h>
int main (void)
{
double x = 5.0;
double y = gsl_sf_bessel_j0 (x);
printf ("JO(%g) = %.18e\n", x , y);
return(0);
}
我得到的结果是:
JO(5) = -1.917848549326277019e-01
GSL手册中给出的结果是
-1.775967713143382920e-01
知道什么是错的吗?
这对我来说确实看起来像个错误。根据changelist,我似乎尚未修复。但是,有两个可能的原因:
JO(5) = -1.775967713143382642e-01
足够接近所需的答案(虽然我不确定精度)。无论如何,由于没有报道,我已经提交了一份错误报告。我一旦获得与此问题相关的任何信息,我计划立即更新此答案。