diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/mt_rand.c | 9 | ||||
-rw-r--r-- | src/common/mt_rand.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/common/mt_rand.c b/src/common/mt_rand.c index ab733ae..fc9a9ec 100644 --- a/src/common/mt_rand.c +++ b/src/common/mt_rand.c @@ -108,3 +108,12 @@ unsigned long mt_random(void) y ^= (y << 15) & 0xEFC60000U; return(y ^ (y >> 18)); } + +int mt_rand(void) { + unsigned long r = mt_random(); + while (r >> 16) + r = (r & 0xFFFF) + (r >> 16); + + return(r); +} + diff --git a/src/common/mt_rand.h b/src/common/mt_rand.h index 07f6ef0..bda5861 100644 --- a/src/common/mt_rand.h +++ b/src/common/mt_rand.h @@ -4,5 +4,6 @@ void mt_seed(unsigned long seed); unsigned long mt_reload(void); unsigned long mt_random(void); +int mt_rand(void); #endif /* __mt_rand_h */ |