fix broken ttyname[_r] (failure to null-terminate result)
[musl] / src / prng / drand48.c
1 #include <stdlib.h>
2 #include <inttypes.h>
3
4 uint64_t __rand48_step(unsigned short *xi, unsigned short *lc);
5 extern unsigned short __seed48[7];
6
7 double 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
16 double drand48(void)
17 {
18         return erand48(__seed48);
19 }