Files
2014-09-12 01:11:41 +02:00

35 lines
601 B
C

#ifndef UC_MERSENNE_TWISTER_H
#define UC_MERSENNE_TWISTER_H
#ifdef __cplusplus
extern "C" {
#endif
#define MT_RAND_N 624
/** Context used for the PRNG*/
typedef struct {
unsigned int x[MT_RAND_N];
int i;
} MTRand;
/** Initialize a Mersenne Twister PRNG context.
* @param seed Starter seed for the PRNG
* @param r context for the PRNG
*/
void mtsrand(int seed, MTRand *r);
/** Generate a new random number.
* Generated range is 0 to UINT_MAX
*
* @param r context for the PRNG
* @return A pseudo random number
*/
unsigned int mtrand(MTRand *r);
#ifdef __cplusplus
}
#endif
#endif