18 static float sq,alxm,G,oldm=-(1.0);
45 t=0.9*(1.0+y*y)*exp(em*alxm-
gammln(em+1.0)-G);
55 float bnldev(
float pp,
int n,
long *idum)
60 float am, em,G,angle,p,bnl,sq,t,y;
61 static float pold=(-1.0),pc,plog,pclog,en,oldg;
63 p=(pp<=0.5 ? pp : 1.0-pp);
68 if(
ran3(idum)<p) ++bnl;
94 }
while(em < 0.0 || em>= (en+1.0));
96 t=1.2*sq*(1.0+y*y)*exp(oldg-
gammln(em+1.0)-
gammln(en-em+1.0)+em*plog+(en-em)*pclog);
108 static double cof[6]={76.18009172947146,-86.50532032941677,24.01409824083091,-1.231739572450155,
109 0.1208650973866179e-2,-0.5395239384953e-5};
113 tmp-=(x+0.5)*log(tmp);
114 ser=1.000000000190015;
115 for(j=0;j<=5;j++)ser+=cof[j]/++y;
116 return -tmp+log(2.5066282746310005*ser/x);
127 for(i=1;i<=m->
nrh;i++){
128 for(j=1;j<m->
nch;j++){
130 for(k=1;k<=V->
nh;k++){
131 if(m->
co[i][j]==V->
co[k])segna=1;
133 if(segna==0)mm+=m->
co[i][j];
148 for(i=1;i<=m->
nrh;i++){
149 for(j=1;j<=m->
nch;j++) {
151 for(k=1;k<=V->
nh;k++){
152 if(m->
co[i][j]==V->
co[k])segna=1;
155 mn+=m->
co[i][j]*m->
co[i][j];
161 return mn/(mx-1)-mx*mm*mm/(mx-1);