diff options
author | Benjamin Barenblat <bbaren@mit.edu> | 2015-09-05 09:32:30 -0400 |
---|---|---|
committer | Benjamin Barenblat <bbaren@mit.edu> | 2015-09-05 09:32:30 -0400 |
commit | ea76b6988ccafaa6a4d4ed90f2489d0e49e1f180 (patch) | |
tree | b01dd19f5c53406d9d636b18bc49916bfdd6d3bc /g_src/random.h |
Imported Upstream version 0.40.24upstream/0.40.24upstream
Diffstat (limited to 'g_src/random.h')
-rwxr-xr-x | g_src/random.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/g_src/random.h b/g_src/random.h new file mode 100755 index 0000000..a160db9 --- /dev/null +++ b/g_src/random.h @@ -0,0 +1,40 @@ +#ifndef RANDOM_H +#define RANDOM_H + +#ifndef WIN32 +#include <stdint.h> +#endif //WIN32 + +#define MT_BUFFER_NUM 10 +#define MT_LEN 624 + + +void mt_init(); +uint32_t mt_trandom(); +static int32_t trandom(uint32_t max=2147483647LU) + { + if(max<=1)return 0; + uint32_t seed=mt_trandom(); + seed=seed%2147483647LU; + seed=seed/((2147483647LU/max)+1); + + return((int32_t)seed); + } +static int32_t loadtrandom(uint32_t max=2147483647LU) + { + uint32_t seed=mt_trandom(); + seed=seed%max; + + return((int32_t)seed); + } +void push_trandom_uniform_seed(uint32_t newseed); +void push_trandom_double_seed(uint32_t newseed1,uint32_t newseed2); +void push_trandom_triple_seed(uint32_t newseed1,uint32_t newseed2,uint32_t newseed3); +void pop_trandom_uniform_seed(); +void trandom_twist(); + +void r_num(); +int32_t basic_random(int32_t max=2147483647); + + +#endif |