xref: /csrg-svn/usr.bin/pascal/libpc/RANDOM.c (revision 10228)
11677Smckusick /* Copyright (c) 1979 Regents of the University of California */
21677Smckusick 
3*10228Smckusick static char sccsid[] = "@(#)RANDOM.c 1.4 01/10/83";
41677Smckusick 
52181Smckusic #include "h00vars.h"
62181Smckusic 
73017Smckusic extern long RAND();
83017Smckusic 
91677Smckusick double
101677Smckusick RANDOM()
111677Smckusick {
12*10228Smckusick 	double d;
13*10228Smckusick 	long l;
14*10228Smckusick 
151677Smckusick 	/*
16*10228Smckusick 	 * calculate (1103515245 * seed) mod 2^31-1
171677Smckusick 	 */
18*10228Smckusick 	d = 1103515245.0 * _seed / 2147483647.0;
19*10228Smckusick 	l = d;
20*10228Smckusick 	d = d - l;
21*10228Smckusick 	_seed = d * 2147483647.0;
22*10228Smckusick 	/*
23*10228Smckusick 	 * want a value in the range 0..1
24*10228Smckusick 	 */
25*10228Smckusick 	return(d);
261677Smckusick }
27