/* For copyright information, see olden_v1.0/COPYRIGHT */ /********************************************************** * poisson.c: handles math routines for health.c * **********************************************************/ #include #include /* From health.h */ #define IA 16807 #define IM 2147483647 #define AM (1.0 / IM) #define IQ 127773 #define IR 2836 #define MASK 123459876 float my_rand(long idum) { long k; float answer; idum ^= MASK; k = idum / IQ; idum = IA * (idum - k * IQ) - IR * k; idum ^= MASK; if (idum < 0) idum += IM; answer = AM * idum; return answer; } int main(int argc, char** argv) { printf("my_rand(%d) = %g\n", 2555540, my_rand(2555540)); printf("my_rand(%d) = %g\n", 2427763, my_rand(2427763)); return 0; }