whrandom

#       WICHMANN-HILL RANDOM NUMBER GENERATOR
#
#       Wichmann, B. A. & Hill, I. D. (1982)
#       Algorithm AS 183:
#       An efficient and portable pseudo-random number generator
#       Applied Statistics 31 (1982) 188-190
#
#       see also:
#               Correction to Algorithm AS 183
#               Applied Statistics 33 (1984) 123
#
#               McLeod, A. I. (1985)
#               A remark on Algorithm AS 183
#               Applied Statistics 34 (1985),198-200
#
#
#       USE:
#       whrandom.random()      yields double precision random numbers
#                               uniformly distributed between 0 and 1.
#
#       whrandom.seed(x, y, z)       must be called before whrandom.random()
#                               to seed the generator
#
#       There is also an interface to create multiple independent
#       random generators, and to choose from other ranges.

Classes

whrandom

 class whrandom # Multi-threading note: the random number generator used here is not # thread-safe; it is possible that nearly simultaneous calls in # different theads return the same random value.  To avoid this, you # have to use a lock around all calls.  (I didn't want to slow this # down in the serial case by using a lock here.) __init__(self, x=0, y=0, z=0) ## Initialize an instance.# Without arguments, initialize from current time.# With arguments (x, y, z), initialize from them. # choice(self, seq) ## Choose a random element from a non-empty sequence. # randint(self, a, b) ## Get a random integer in the range [a, b] including both end points.# (Deprecated; use randrange below.) # random(self) ## Get the next random number in the range [0.0, 1.0). # randrange(self, start, stop=None, step=1, int=, default=None) ## Choose a random item from range([start,] step[, stop]).# This fixes the problem with randint() which includes the# endpoint; in Python this is usually not what you want. # seed(self, x=0, y=0, z=0) ## Set the seed from (x, y, z).# These must be integers in the range [0, 256). # uniform(self, a, b) ## Get a random number in the range [a, b). #

 Functions choice(no arg info) ## Choose a random element from a non-empty sequence. # randint(no arg info) ## Get a random integer in the range [a, b] including both end points.# (Deprecated; use randrange below.) # random(no arg info) ## Get the next random number in the range [0.0, 1.0). # randrange(no arg info) ## Choose a random item from range([start,] step[, stop]).# This fixes the problem with randint() which includes the# endpoint; in Python this is usually not what you want. # seed(no arg info) ## Set the seed from (x, y, z).# These must be integers in the range [0, 256). # uniform(no arg info) ## Get a random number in the range [a, b). #