| Index: fusl/src/prng/drand48.c
|
| diff --git a/fusl/src/prng/drand48.c b/fusl/src/prng/drand48.c
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d808353c9872ebd1ae7dedd8dadff14c41b3a8ba
|
| --- /dev/null
|
| +++ b/fusl/src/prng/drand48.c
|
| @@ -0,0 +1,19 @@
|
| +#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);
|
| +}
|
|
|