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