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