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