erand48.c.patch   [plain text]


--- erand48.c.orig	2003-05-20 15:21:01.000000000 -0700
+++ erand48.c	2005-11-03 12:30:30.000000000 -0800
@@ -19,8 +19,8 @@
 double
 erand48(unsigned short xseed[3])
 {
-	_dorand48(xseed);
-	return ldexp((double) xseed[0], -48) +
-	       ldexp((double) xseed[1], -32) +
-	       ldexp((double) xseed[2], -16);
+	uint48 tmp;
+	ERAND48_BEGIN;
+	DORAND48(tmp, xseed);
+	ERAND48_END(tmp);
 }