/* * A simple Mersenne Twister implementation in C * Author: Nicholas Kamper (kampernj@rose-hulman.edu) * * Based on http://en.wikipedia.org/wiki/Mersenne_twister#Pseudocode */ #ifndef __MT_H_ #define __MT_H_ #define MT_SIZE 623 #define MT_32B_MASK 0xFFFFFFFFUL #define MT_INIT_COEF 0x6C078965UL #define MT_SB_COEF 0x9D2C5680UL #define MT_TC_COEF 0xEFC60000UL /** Seeds the RNG with the given seed */ void mt_seed(uint32_t seed); /** Returns a random value between 0..max */ uint32_t mt_rand(uint32_t max); #endif