From 0dc5437e311dbdbcac26489c82bdb9eef9dc1b03 Mon Sep 17 00:00:00 2001 From: Christian Mehlis Date: Mon, 26 Aug 2013 21:58:45 +0200 Subject: [PATCH] fixes for PRNG --- sys/include/random.h | 4 +++- sys/random/mersenne.c | 10 +++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/sys/include/random.h b/sys/include/random.h index 694504859b..3ae032cc42 100644 --- a/sys/include/random.h +++ b/sys/include/random.h @@ -1,6 +1,8 @@ #include -#define PRNG_FLOAT (0) +#ifndef PRNG_FLOAT +# define PRNG_FLOAT (0) +#endif /** * @brief initializes mt[N] with a seed diff --git a/sys/random/mersenne.c b/sys/random/mersenne.c index a840064071..414a232975 100644 --- a/sys/random/mersenne.c +++ b/sys/random/mersenne.c @@ -142,23 +142,23 @@ uint32_t genrand_uint32(void) double genrand_real(void) { - return genrand_int32() * (1.0 / TWO_POW_32); + return genrand_uint32() * (1.0 / TWO_POW_32); } double genrand_real_inclusive(void) { - return genrand_int32() * (1.0 / TWO_POW_32_M1); + return genrand_uint32() * (1.0 / TWO_POW_32_M1); } double genrand_real_exclusive(void) { - return ((double) genrand_int32() + 0.5) * (1.0 / TWO_POW_32); + return ((double) genrand_uint32() + 0.5) * (1.0 / TWO_POW_32); } double genrand_res53(void) { - double a = genrand_int32() * TWO_POW_26; - double b = genrand_int32() * (1.0 / TWO_POW_6); + double a = genrand_uint32() * TWO_POW_26; + double b = genrand_uint32() * (1.0 / TWO_POW_6); return (a + b) * (1.0 / TWO_POW_53); }