summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/mt_rand.c9
-rw-r--r--src/common/mt_rand.h1
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 */