!%endoflist
!These Pseudo-random numbers were written by P. Reid.  It is not known if
!they are genuinely random or not.

!**  %routine   INITALISE RANDOM    sets up the random integer SEED          **!
!**  %real %fn  RANDOM REAL (LO,HI) returns uniformly distributed reals      **!
!**                                 between LO and HI inclusive              **!
!**  %short %fn RANDOM INT (LO,HI)  returns uniformly distributed short      **!
!**                                 integers between LO and HI inclusive     **!

own integer Seed=0  {initialised to 0: JHB mod 16/12/86}


routine Initialise Random
!
! Set up SEED
!
   Seed = CpuTime
end


realfn Random Real(real Lo, Hi)
!
! Returns a random real between LO and HI inclusive
!
   Seed = (23501*Seed + 6923) & 32767
   result = Lo + (Seed * (Hi - Lo))/32767
end


shortfn Random Int (short Lo, Hi)
!
! Returns a random shortinteger between LO and HI inclusive
!
   Seed = (23501*Seed + 6923) & 32767
   result = Int(Lo + (Seed * (Hi - Lo))/32767)
end

!%list
endoffile