1#include <inttypes.h>
2#include <stdlib.h>
3
4#include "rand48_impl.h"
5
6double erand48(unsigned short s[3]) {
7    union {
8        uint64_t u;
9        double f;
10    } x = {0x3ff0000000000000ULL | __rand48_step(s, __seed48 + 3) << 4};
11    return x.f - 1.0;
12}
13
14double drand48(void) {
15    return erand48(__seed48);
16}
17