erand48.c.patch   [plain text]


--- erand48.c.orig	2009-11-07 14:51:37.000000000 -0800
+++ erand48.c	2009-11-07 14:51:39.000000000 -0800
@@ -19,8 +19,8 @@ __FBSDID("$FreeBSD: src/lib/libc/gen/era
 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);
 }