summaryrefslogtreecommitdiff
path: root/ipl/procs/random.icn
diff options
context:
space:
mode:
Diffstat (limited to 'ipl/procs/random.icn')
-rw-r--r--ipl/procs/random.icn11
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
}
}