add numerical recipes library
This commit is contained in:
22
lib/nr/cpp/recipes/bessi0.cpp
Normal file
22
lib/nr/cpp/recipes/bessi0.cpp
Normal file
@@ -0,0 +1,22 @@
|
||||
#include <cmath>
|
||||
#include "nr.h"
|
||||
using namespace std;
|
||||
|
||||
DP NR::bessi0(const DP x)
|
||||
{
|
||||
DP ax,ans,y;
|
||||
|
||||
if ((ax=fabs(x)) < 3.75) {
|
||||
y=x/3.75;
|
||||
y*=y;
|
||||
ans=1.0+y*(3.5156229+y*(3.0899424+y*(1.2067492
|
||||
+y*(0.2659732+y*(0.360768e-1+y*0.45813e-2)))));
|
||||
} else {
|
||||
y=3.75/ax;
|
||||
ans=(exp(ax)/sqrt(ax))*(0.39894228+y*(0.1328592e-1
|
||||
+y*(0.225319e-2+y*(-0.157565e-2+y*(0.916281e-2
|
||||
+y*(-0.2057706e-1+y*(0.2635537e-1+y*(-0.1647633e-1
|
||||
+y*0.392377e-2))))))));
|
||||
}
|
||||
return ans;
|
||||
}
|
||||
Reference in New Issue
Block a user