20 lines
414 B
C++
20 lines
414 B
C++
#include <cmath>
|
|
#include "nr.h"
|
|
using namespace std;
|
|
|
|
DP NR::gammln(const DP xx)
|
|
{
|
|
int j;
|
|
DP x,y,tmp,ser;
|
|
static const DP cof[6]={76.18009172947146,-86.50532032941677,
|
|
24.01409824083091,-1.231739572450155,0.1208650973866179e-2,
|
|
-0.5395239384953e-5};
|
|
|
|
y=x=xx;
|
|
tmp=x+5.5;
|
|
tmp -= (x+0.5)*log(tmp);
|
|
ser=1.000000000190015;
|
|
for (j=0;j<6;j++) ser += cof[j]/++y;
|
|
return -tmp+log(2.5066282746310005*ser/x);
|
|
}
|