OurOS 0.1
Operating System built by McGill Students
 
Loading...
Searching...
No Matches
rand.c File Reference
#include "rand.h"

Macros

#define M   397
 
#define MATRIX_A   0x9908b0df
 
#define UPPER_MASK   0x80000000
 
#define LOWER_MASK   0x7fffffff
 
#define TEMPERING_MASK_B   0x9d2c5680
 
#define TEMPERING_MASK_C   0xefc60000
 
#define TEMPERING_SHIFT_U(y)   (y >> 11)
 
#define TEMPERING_SHIFT_S(y)   (y << 7)
 
#define TEMPERING_SHIFT_T(y)   (y << 15)
 
#define TEMPERING_SHIFT_L(y)   (y >> 18)
 

Functions

void mt19937_init (mt19937_state *state, uint32_t seed)
 
uint32_t mt19937_gen32 (mt19937_state *state)
 
static int rdseed (void)
 
static int rdrand (void)
 
static uint32_t get_seed (void)
 
void srand (uint32_t seed)
 
uint32_t rand (void)
 

Variables

static mt19937_state mt19937_global_state
 
static int mt19937_global_initialized = 0
 

Macro Definition Documentation

◆ LOWER_MASK

#define LOWER_MASK   0x7fffffff

◆ M

#define M   397

◆ MATRIX_A

#define MATRIX_A   0x9908b0df

◆ TEMPERING_MASK_B

#define TEMPERING_MASK_B   0x9d2c5680

◆ TEMPERING_MASK_C

#define TEMPERING_MASK_C   0xefc60000

◆ TEMPERING_SHIFT_L

#define TEMPERING_SHIFT_L (   y)    (y >> 18)

◆ TEMPERING_SHIFT_S

#define TEMPERING_SHIFT_S (   y)    (y << 7)

◆ TEMPERING_SHIFT_T

#define TEMPERING_SHIFT_T (   y)    (y << 15)

◆ TEMPERING_SHIFT_U

#define TEMPERING_SHIFT_U (   y)    (y >> 11)

◆ UPPER_MASK

#define UPPER_MASK   0x80000000

Function Documentation

◆ get_seed()

static uint32_t get_seed ( void  )
static

◆ mt19937_gen32()

uint32_t mt19937_gen32 ( mt19937_state *  state)

◆ mt19937_init()

void mt19937_init ( mt19937_state *  state,
uint32_t  seed 
)

◆ rand()

uint32_t rand ( void  )

◆ rdrand()

static int rdrand ( void  )
inlinestatic

◆ rdseed()

static int rdseed ( void  )
inlinestatic

◆ srand()

void srand ( uint32_t  seed)

Variable Documentation

◆ mt19937_global_initialized

int mt19937_global_initialized = 0
static

◆ mt19937_global_state

mt19937_state mt19937_global_state
static