/* Test routine for the uniform random number generators */ #include #include #include #include "gsl_ran.h" #include "gsl_ran_switch.h" int main(int argc, char **argv) { int n=1; int randseed=17; if (argc == 1) { n = 1000000 ; /* default test samples 1 million random numbers */ } else if (argc > 1) { n = atoi(argv[1]); } if (!n) { printf("Usage: %s [seed]\n",argv[0]); printf(" Tests random number generator\n"); printf(" usiing trials, and\n"); printf(" optionally using \n"); exit(0); } if (argc > 2) { /* these algorithms should work even if the seed is * not initially set! */ randseed = atoi(argv[2]); } printf("----- Using default: --\n"); doran(n,randseed); printf("----- Using cmrg: -----\n"); gsl_ran_use_cmrg(); doran(n,randseed); printf("----- Using mrg: -----\n"); gsl_ran_use_mrg(); doran(n,randseed); printf("----- Using taus: -----\n"); gsl_ran_use_taus(); doran(n,randseed); } int doran(int n,int randseed) { int i; double sum,sigma; void *tmpState; unsigned long r,rmax; gsl_ran_seed(randseed); printf("Nominal Maximum random = %g\n",gsl_ran_max()); rmax=0; for (i=0; i