/*************************** EX-RAN.CPP ********************* AgF 2001-11-11 *
*                                                                            *
* Example showing how to use random number generators from class library.    *
*                                                                            *
* Compile for console mode.                                                  *               *
* © 2001 Agner Fog. GNU General Public License www.gnu.org/copyleft/gpl.html *
*****************************************************************************/

#include <time.h>                      // define time()
#include "randomc.h"                   // define classes for random number generators
#include "userintf.cpp"                // define system specific user interface

// include code for one of the random number generators:
#include "mersenne.cpp"                // members of class TRandomMersenne
// or:
// #include "ranrotw.cpp"              // members of class TRanrotWGenerator
// or:
// #include "mother.cpp"               // members of class TRanrotWGenerator

int main() {
  int32 seed = time(0);                // random seed
  
  // choose one of the random number generators:
  TRandomMersenne rg(seed);            // make instance of random number generator
  // or:
  // TRanrotWGenerator rg(seed);       // make instance of random number generator
  // or:
  // TRandomMotherOfAll rg(seed);      // make instance of random number generator
  
  int i;                               // loop counter
  double r;                            // random number
  int32 ir;                            // random integer number


  // make random integers in interval from 0 to 99, inclusive:
  printf("\n\nRandom integers in interval from 0 to 99:\n");
  for (i=0; i<40; i++) {
    ir = rg.IRandom(0,99);
    printf ("%6li  ", ir);}

  // make random floating point numbers in interval from 0 to 1:
  printf("\n\nRandom floating point numbers in interval from 0 to 1:\n");
  for (i=0; i<32; i++) {
    r = rg.Random();
    printf ("%8.6f  ", r);}

  // make random bits (Not for TRandomMotherOfAll):
  printf("\n\nRandom bits (hexadecimal):\n");
  for (i=0; i<32; i++) {
    ir = rg.BRandom();
    printf ("%08lX  ", ir);}

  EndOfProgram();                      // system-specific exit code
  return 0;}