25 #define IM1 2147483563
26 #define IM2 2147483399
36 #define NDIV (1+IMM1/NTAB)
38 #define RNMX (1.0 - EPS)
45 long urand(
long *idum,
long range)
47 static long y, maxran, v[98];
53 if(*idum <0 || iff==0){
59 for(i=1;j<=97;j++) dum=rand();
60 for(i=1;i<=97;i++) v[i]=range*(
long)rand()/maxran;
62 y=1+97*(long)rand()/maxran;
67 v[j]=range*(long)rand()/maxran;
77 static long ix1,ix2,ix3;
83 if(*idum<0 || iff==0){
85 ix1=(
IC1-(*idum)) %
M1;
102 if(j > 96 || j<0)
t_error(
"This cannot happen.");
119 static long idum2=123456789;
121 static long iv[
NTAB];
126 if(-(*idum) <1) *idum=1;
129 for(j=
NTAB+7;j>=0;j--){
132 if (*idum <0) *idum +=
IM1;
133 if ( j <
NTAB) iv[j] =* idum;
141 if(*idum <0) *idum +=
IM1;
144 if(idum2 < 0) idum +=
IM2;
148 if( iy <1 ) iy +=
IMM1;
162 static long iv[
NTAB];
166 if(-(*idum)<1) *idum=1;
167 else *idum= -(*idum);
168 for (j=
NTAB+7;j>=0; j--){
170 *idum=
IA*(*idum-k*
IQ)-
IR*k;
171 if(*idum<0) *idum +=
IM;
172 if(j<
NTAB) iv[j]=*idum;
176 *idum=
IA*(*idum-k*
IQ)-
IR*k;
177 if (*idum<0) *idum+=
IM;
254 float umed, uvar,u,v;
256 uvar=log(1+pow((vvar/vmed),2));
257 umed=0.5*log(pow(vmed,2)/(1+pow((vvar/vmed),2)));
276 double fac,rsq,v1,v2;
285 v1=2.0*
ran1(idum)-1.0;
286 v2=2.0*
ran1(idum)-1.0;
289 }
while (rsq>=1.0 || rsq==0.0);
290 fac=sqrt(-2.0*log(rsq)/rsq);