fixes for PRNG

This commit is contained in:
Christian Mehlis 2013-08-26 21:58:45 +02:00
parent 49876c15f7
commit 0dc5437e31
2 changed files with 8 additions and 6 deletions

View File

@ -1,6 +1,8 @@
#include <inttypes.h> #include <inttypes.h>
#define PRNG_FLOAT (0) #ifndef PRNG_FLOAT
# define PRNG_FLOAT (0)
#endif
/** /**
* @brief initializes mt[N] with a seed * @brief initializes mt[N] with a seed

View File

@ -142,23 +142,23 @@ uint32_t genrand_uint32(void)
double genrand_real(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) 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) 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 genrand_res53(void)
{ {
double a = genrand_int32() * TWO_POW_26; double a = genrand_uint32() * TWO_POW_26;
double b = genrand_int32() * (1.0 / TWO_POW_6); double b = genrand_uint32() * (1.0 / TWO_POW_6);
return (a + b) * (1.0 / TWO_POW_53); return (a + b) * (1.0 / TWO_POW_53);
} }