Files
libucore/src/ucore_mersenne_twister.h
T
2012-11-01 19:10:24 +01:00

28 lines
539 B
C

#ifndef UCORE_MERSENNE_TWISTER_H
#define UCORE_MERSENNE_TWISTER_H
/** Context used for the PRNG*/
#define MT_RAND_N 624
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);
#endif