diff options
Diffstat (limited to 'ipl/procs/random.icn')
-rw-r--r-- | ipl/procs/random.icn | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/ipl/procs/random.icn b/ipl/procs/random.icn index 8dc58f2..2749bb7 100644 --- a/ipl/procs/random.icn +++ b/ipl/procs/random.icn @@ -6,7 +6,7 @@ # # Authors: Ralph E. Griswold and Gregg M. Townsend # -# Date: June 24, 2002 +# Date: November 5, 2009 # ############################################################################ # @@ -87,18 +87,19 @@ procedure rand_int(i) #: model ?i end procedure randomize() #: randomize - local f, s + local f, s, i static ncalls initial ncalls := 0 ncalls +:= 1 if f := open("/dev/urandom", "ru") then { - s := reads(f, 3) + s := reads(f, 4) close(f) if *\s > 0 then { - &random := ncalls % 113 - every &random := 256 * &random + ord(!s) + &random := 1 + every i := ord(!s) do + &random := 167 * &random + i return } } |