add numerical recipes library
This commit is contained in:
24
lib/nr/k_and_r/recipes/bessi1.c
Normal file
24
lib/nr/k_and_r/recipes/bessi1.c
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
#include <math.h>
|
||||
|
||||
float bessi1(x)
|
||||
float x;
|
||||
{
|
||||
float ax,ans;
|
||||
double y;
|
||||
|
||||
if ((ax=fabs(x)) < 3.75) {
|
||||
y=x/3.75;
|
||||
y*=y;
|
||||
ans=ax*(0.5+y*(0.87890594+y*(0.51498869+y*(0.15084934
|
||||
+y*(0.2658733e-1+y*(0.301532e-2+y*0.32411e-3))))));
|
||||
} else {
|
||||
y=3.75/ax;
|
||||
ans=0.2282967e-1+y*(-0.2895312e-1+y*(0.1787654e-1
|
||||
-y*0.420059e-2));
|
||||
ans=0.39894228+y*(-0.3988024e-1+y*(-0.362018e-2
|
||||
+y*(0.163801e-2+y*(-0.1031555e-1+y*ans))));
|
||||
ans *= (exp(ax)/sqrt(ax));
|
||||
}
|
||||
return x < 0.0 ? -ans : ans;
|
||||
}
|
||||
Reference in New Issue
Block a user