diff options
author | David du Colombier <0intro@gmail.com> | 2017-09-01 22:51:14 +0200 |
---|---|---|
committer | David du Colombier <0intro@gmail.com> | 2017-09-01 22:51:14 +0200 |
commit | a8a775abbe711d4442004264cac4cc84aed9cf6a (patch) | |
tree | 516918b6773a7f4cd10e94df4d82e11f22c09e7e /src/lib9 | |
parent | bb044732c6122cc3ba7c7bc7a44bc2ea762d31b1 (diff) | |
download | plan9port-a8a775abbe711d4442004264cac4cc84aed9cf6a.tar.gz plan9port-a8a775abbe711d4442004264cac4cc84aed9cf6a.tar.bz2 plan9port-a8a775abbe711d4442004264cac4cc84aed9cf6a.zip |
lib9: import frand function from Plan 9
Fixes #15.
Diffstat (limited to 'src/lib9')
-rw-r--r-- | src/lib9/frand.c | 17 | ||||
-rw-r--r-- | src/lib9/mkfile | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/lib9/frand.c b/src/lib9/frand.c new file mode 100644 index 00000000..841f9685 --- /dev/null +++ b/src/lib9/frand.c @@ -0,0 +1,17 @@ +#include <u.h> +#include <libc.h> + +#define MASK 0x7fffffffL +#define NORM (1.0/(1.0+MASK)) + +double +p9frand(void) +{ + double x; + + do { + x = lrand() * NORM; + x = (x + lrand()) * NORM; + } while(x >= 1); + return x; +} diff --git a/src/lib9/mkfile b/src/lib9/mkfile index 4bbd0f8b..8f7283ef 100644 --- a/src/lib9/mkfile +++ b/src/lib9/mkfile @@ -102,6 +102,7 @@ LIB9OFILES=\ execl.$O\ exitcode.$O\ fcallfmt.$O\ + frand.$O\ get9root.$O\ getcallerpc-$OBJTYPE.$O\ getenv.$O\ |