home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
modu1096.zip
/
GPMsym
/
random.def
< prev
next >
Wrap
Text File
|
1996-09-03
|
2KB
|
41 lines
(****************************************************************)
(* *)
(* Gardens Point Modula-2 Library Definition *)
(* *)
(* *)
(* (c) Copyright 1996 Faculty of Information Technology *)
(* Queensland University of Technology *)
(* *)
(* Permission is granted to use, copy and change this *)
(* program as long as the copyright message is left intact *)
(* *)
(****************************************************************)
(* !LIBRARY! *) DEFINITION MODULE Random;
(*
Random number generator.
Uses the 'Minimal standard random number generator' described by
Park & Miller, CACM 31,10,Oct 88 p1192. The code has been checked
for the 10001st random as specified in Park & Miller p1195.
This version returns a REAL randomly distributed in the closed range
[0.0,1.0], and will be correct if the real mantissa is 46 bits
or larger (including sign bit). The sequence is guaranteed to produce
all values of the form n/m for n = 0 to m, where m is 2147483646
(=2**31-2), before cycling.
*)
PROCEDURE InitRandom (seed : REAL);
(* Initialise the random number generator with the given seed. *)
(* The seed should be in the range [1.0,2147483646.0] - values outside *)
(* this range are clamped to the extreme values. *)
(* If InitRandom is not called, the system clock is used to initialise *)
(* the sequence; thus InitRandom must be called to create a *)
(* reproducible sequence. *)
(* InitRandom may be called as often as needed. *)
PROCEDURE Random() : REAL;
(* Return the next pseudo-random number in the closed range [0.0,1.0] *)
END Random.