```
/***
* test1
*
* Look at the statistics of some random number
* generators.
*
***/

#include <stdlib.h>
#include <stdio.h>
#include <math.h>

#include "jims1Rand.h"

// -----------------------------------------------------

// This prints out some randoms as well as their mean and
// standard deviation (sigma).
// Inputs are
//   seed	  an unsigned int to initialize the generator
//   N		  number of randoms to look at
//   RandMax	  randoms are 0..(RandMax-1)
//   verbose	  1 => print each random
//   theSrand()   function which initialized the generator
//   theRand()	  function to return the next random
//
void testRandoms( int seed, int N, int RandMax, int verbose,
void theSrand(unsigned int), int theRand() ){
int i, r;
double sum, sumsq, mean, sigma, x, trueSigmaN;
printf(" Testing randoms with seed=%d, N=%d, max=%d \n",
seed, N, RandMax);
theSrand(seed);
sum=0;
sumsq=0;
for (i=0; i<N; i++){
r = theRand();
x = ((double)r)/RandMax;
if (verbose==1){
printf("   %12d   %8.6f \n", r, x);
}
sum += x;
sumsq += x*x;
}
mean = sum/N;
sigma = sqrt( sumsq/N - mean*mean );

printf(" When scaled to 0.0 .. 1.0 we have \n");
printf(" Scaled to 0->1, mean = %-8.6f, sigma = %8.6f \n", mean, sigma);
trueSigmaN = sqrt( (1.0/3.0 - 1.0/4.0) );
printf(" (Uniform is mean=0.5, sigma_N = %8.6f \n", trueSigmaN);
printf("\n");

}

// ------------------------------------------------------------

int main(){

printf("** system srand() and rand() **\n");
testRandoms( 11234, 100, RAND_MAX, 1, srand, rand );

printf("** 'jims1Srand() and jims1Rand() **\n");
testRandoms( 123, 100, jims1GetRAND_MAX(), 1, jims1Srand, jims1Rand );

}

```

syntax highlighted by Code2HTML, v. 0.9.1