#include #include #include #include #include "mersenne.h" /* Generates random numbers from Gaussian distribution. * Compile: * cc -o grnd_generate grnd_generate.c gaussian_ran.c mersenne_inline.c -lm */ char usage[] = " usage: grnd_generate N \n\ Generates N gaussian random numbers\n"; double gaussian_ran(void); /* Prototype for the function! */ int main(int argc,char *argv[]) { struct timeval tv; struct timezone tz; double res,err; int loops,n,i; /* require correct number of arguments */ if (argc != 2) { fprintf(stderr,usage); exit(0); } n = atoi(argv[1]); /* first int */ /* seed the random number using system time * tv.tv_sec contains time in seconds, tv.tv_usec in microseconds */ gettimeofday( &tv, &tz ); seed_mersenne( tv.tv_sec + tv.tv_usec ); for (i=0; i<100000; i++) mersenne(); for (i=0; i