diff options
Diffstat (limited to 'libm/double/lrand.c')
-rw-r--r-- | libm/double/lrand.c | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/libm/double/lrand.c b/libm/double/lrand.c deleted file mode 100644 index cfdaa9f28..000000000 --- a/libm/double/lrand.c +++ /dev/null @@ -1,86 +0,0 @@ -/* lrand.c - * - * Pseudorandom number generator - * - * - * - * SYNOPSIS: - * - * long y, drand(); - * - * drand( &y ); - * - * - * - * DESCRIPTION: - * - * Yields a long integer random number. - * - * The three-generator congruential algorithm by Brian - * Wichmann and David Hill (BYTE magazine, March, 1987, - * pp 127-8) is used. The period, given by them, is - * 6953607871644. - * - * - */ - - - -#include <math.h> - - -/* Three-generator random number algorithm - * of Brian Wichmann and David Hill - * BYTE magazine, March, 1987 pp 127-8 - * - * The period, given by them, is (p-1)(q-1)(r-1)/4 = 6.95e12. - */ - -static int sx = 1; -static int sy = 10000; -static int sz = 3000; - -/* This function implements the three - * congruential generators. - */ - -long lrand() -{ -int r, s; -unsigned long ans; - -/* -if( arg ) - { - sx = 1; - sy = 10000; - sz = 3000; - } -*/ - -/* sx = sx * 171 mod 30269 */ -r = sx/177; -s = sx - 177 * r; -sx = 171 * s - 2 * r; -if( sx < 0 ) - sx += 30269; - - -/* sy = sy * 172 mod 30307 */ -r = sy/176; -s = sy - 176 * r; -sy = 172 * s - 35 * r; -if( sy < 0 ) - sy += 30307; - -/* sz = 170 * sz mod 30323 */ -r = sz/178; -s = sz - 178 * r; -sz = 170 * s - 63 * r; -if( sz < 0 ) - sz += 30323; - -ans = sx * sy * sz; -return(ans); -} - |