| #include <stdlib.h> | |
| #include <inttypes.h> | |
| uint64_t __rand48_step(unsigned short *xi, unsigned short *lc); | |
| extern unsigned short __seed48[7]; | |
| double erand48(unsigned short s[3]) | |
| { | |
| union { | |
| uint64_t u; | |
| double f; | |
| } x = { 0x3ff0000000000000ULL | __rand48_step(s, __seed48+3)<<4 }; | |
| return x.f - 1.0; | |
| } | |
| double drand48(void) | |
| { | |
| return erand48(__seed48); | |
| } |