Kohi Game Engine
mtwister.h File Reference

An implementation of the MT19937 algorithm for the Mersenne Twister, based on implementation by Evan Sultanik and pseudocode by M. Matsumoto and T. Nishimura, "Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator," ACM Transactions on Modeling and Computer Simulation Vol. 8, No. 1, January pp.3-30 1998. More...

#include "defines.h"

Go to the source code of this file.

Data Structures

struct  mtrand_state
 

Macros

#define STATE_VECTOR_LENGTH   624
 
#define STATE_VECTOR_M   397
 

Typedefs

typedef struct mtrand_state mtrand_state
 

Functions

KAPI mtrand_state mtrand_create (u64 seed)
 Creates a new Mersenne Twister random number generator using the provided seed. More...
 
KAPI u64 mtrand_generate (mtrand_state *generator)
 Generates a new random 64-bit unsigned integer from the given generator. More...
 
KAPI f64 mtrand_generate_d (mtrand_state *generator)
 Generates a new random 64-bit floating-point number from the given generator. More...
 

Detailed Description

An implementation of the MT19937 algorithm for the Mersenne Twister, based on implementation by Evan Sultanik and pseudocode by M. Matsumoto and T. Nishimura, "Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator," ACM Transactions on Modeling and Computer Simulation Vol. 8, No. 1, January pp.3-30 1998.

Macro Definition Documentation

◆ STATE_VECTOR_LENGTH

#define STATE_VECTOR_LENGTH   624

◆ STATE_VECTOR_M

#define STATE_VECTOR_M   397

Typedef Documentation

◆ mtrand_state

typedef struct mtrand_state mtrand_state

Function Documentation

◆ mtrand_create()

KAPI mtrand_state mtrand_create ( u64  seed)

Creates a new Mersenne Twister random number generator using the provided seed.

Parameters
Theseed to use for the RNG.
Returns
The state for the MT RNG.

◆ mtrand_generate()

KAPI u64 mtrand_generate ( mtrand_state generator)

Generates a new random 64-bit unsigned integer from the given generator.

Parameters
generatorA pointer to the random number generator to be used.
Returns
A newly generated 64-bit unsigned integer.

◆ mtrand_generate_d()

KAPI f64 mtrand_generate_d ( mtrand_state generator)

Generates a new random 64-bit floating-point number from the given generator.

Parameters
generatorA pointer to the random number generator to be used.
Returns
A newly generated 64-bit floating-point number.