aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/gen/erand48.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/gen/erand48.c')
-rw-r--r--lib/libc/gen/erand48.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/libc/gen/erand48.c b/lib/libc/gen/erand48.c
index 286904c27839..38d4774a9fe6 100644
--- a/lib/libc/gen/erand48.c
+++ b/lib/libc/gen/erand48.c
@@ -16,8 +16,9 @@
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);
}