definition module Random /** * This module provides a pseudo random generator based * on the Mersenne Twister algorithm * * Version 1.0.1 - July 30, 1999 - Thorsten Zoerner * Catholic University of Nijmegen - zoerner@cs.kun.nl * * This implementation is a rewrite of a C program by T. Nishimura * which can be found in the paper "Mersenne Twister: A * 623-dimensionally equidistributed uniform pseudorandom number * generator" by M. Matsumoto and T. Nishimura in ACM Transactions * on Modeling and Computer Simulation, vol. 8, no. 1, * January 1998, pp. 3-30. * * The original C code contained the following notice: * Copyright (C) 1997 Makoto Matsumoto and Takuji Nishimura. * When you use this, send an email to: matumoto@math.keio.ac.jp * with an appropriate reference to your work. */ /** * Generates an infinite list of in [0, 1] uniformly distributed * real pseudorandom numbers. There period is (2^19937)-1. * Input any nonzero integer as seed value. * * @param The integer to be used as seed value * @return an infinite list of pseudorandom real values */ genRandReal :: Int -> [Real] /** * Generates an infinite list of in [-(2^31), (2^31)-1] uniformly distributed * signed integer pseudorandom numbers. There period is (2^19937)-1. * Input any nonzero integer as seed value. * * @param The integer to be used as seed value * @return an infinite list of pseudorandom integer values */ genRandInt :: Int -> [Int]