/* C includes */
#include <stdio.h>
#include <stdlib.h>

/* local includes */
#include "stmc.h"


/* seeds */
stmc_int seed1; /* make it variable in this program */
stmc_int seed2=0;

/* file to store the state of the random number object */
stmc_char ranmar_file[]="ranmar.d";

/* number of Marsaglia random numbers */
stmc_int Ndat=1000000;

/* number of different seeds (0-based) */
stmc_int Nseeds=11;

int main(void)
{
  stmc_rannum *r; /* random number generator object */
  stmc_int i,events;
  stmc_real08 xr,yr;
  stmc_real08 *pi_s;

  /* create array for PI's */
  pi_s=(stmc_real08*)malloc((size_t)Nseeds*sizeof(stmc_real08));

  for(seed1=0;seed1<Nseeds;seed1++)
    {
      printf("seed1=%d\n",seed1);

      /* initialize random number generator object */
      r=stmc_rma_set(seed1,seed2,ranmar_file);

      /* set event counter to 0 */
      events=0;

      for(i=0;i<Ndat;i++)
        {
          xr=stmc_ranmar(r);
          yr=stmc_ranmar(r);

          /* check if (xr,yr) is inside unit circle */
          if((xr*xr+yr*yr)<1.0) events++;

        }

      /* estimate PI */
      pi_s[seed1]=(4.0*events)/Ndat;
      printf("PI=%f\n\n",pi_s[seed1]);

      /* free rannum object */
      stmc_rma_free(r);
   }

  /* free PIs array */
  free(pi_s);

  return 0;
}

/* include all used routines */
#ifndef STMC_C_COMPILED_AS_LIBRARY
#include "stmc_rma_set.c"
#include "stmc_ranmar.c"
#include "stmc_rma_free.c"
#endif

