Hawaii Hybrid
Loading...
Searching...
No Matches
mtwist.c File Reference
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include "mtwist.h"
Include dependency graph for mtwist.c:

Macros

#define ATTRIBUTE(attrs)
#define MT_INLINE   /* Disable the inline keyword */
#define MT_EXTERN   /* Generate real code for functions */
#define MT_GENERATE_CODE_IN_HEADER   1 /* Generate code when #including */
#define RECURRENCE_OFFSET   397 /* Offset into state space for the */
#define MATRIX_A   0x9908b0df /* Constant vector A for the */
#define BIT_WIDTH   32 /* Work with 32-bit words */
#define UPPER_MASK   0x80000000 /* Most significant w-r bits */
#define LOWER_MASK   0x7fffffff /* Least significant r bits */
#define COMBINE_BITS(x, y)
#define MATRIX_MULTIPLY(original, new)
#define KNUTH_MULTIPLIER_OLD    69069
#define KNUTH_MULTIPLIER_NEW    1812433253ul
#define KNUTH_SHIFT   30
#define DEFAULT_SEED32_OLD    4357
#define DEFAULT_SEED32_NEW    5489ul
#define DEVRANDOM   "/dev/random"
#define DEVURANDOM   "/dev/urandom"

Functions

void mts_mark_initialized (mt_state *state)
void mts_seed32 (mt_state *state, uint32_t seed)
void mts_seed32new (mt_state *state, uint32_t seed)
void mts_seedfull (mt_state *state, uint32_t seeds[MT_STATE_SIZE])
uint32_t mts_seed (mt_state *state)
uint32_t mts_goodseed (mt_state *state)
void mts_bestseed (mt_state *state)
void mts_refresh (register mt_state *state)
int mts_savestate (FILE *statefile, mt_state *state)
int mts_loadstate (FILE *statefile, mt_state *state)
void mt_seed32 (uint32_t seed)
void mt_seed32new (uint32_t seed)
void mt_seedfull (uint32_t seeds[MT_STATE_SIZE])
uint32_t mt_seed (void)
uint32_t mt_goodseed (void)
void mt_bestseed (void)
mt_statemt_getstate (void)
int mt_savestate (FILE *statefile)
int mt_loadstate (FILE *statefile)

Variables

mt_state mt_default_state
double mt_32_to_double
double mt_64_to_double

Macro Definition Documentation

◆ ATTRIBUTE

#define ATTRIBUTE ( attrs)

◆ BIT_WIDTH

#define BIT_WIDTH   32 /* Work with 32-bit words */

◆ COMBINE_BITS

#define COMBINE_BITS ( x,
y )
Value:
(((x) & UPPER_MASK) | ((y) & LOWER_MASK))
#define UPPER_MASK
Definition mtwist.c:247
#define LOWER_MASK
Definition mtwist.c:248

◆ DEFAULT_SEED32_NEW

#define DEFAULT_SEED32_NEW    5489ul

◆ DEFAULT_SEED32_OLD

#define DEFAULT_SEED32_OLD    4357

◆ DEVRANDOM

#define DEVRANDOM   "/dev/random"

◆ DEVURANDOM

#define DEVURANDOM   "/dev/urandom"

◆ KNUTH_MULTIPLIER_NEW

#define KNUTH_MULTIPLIER_NEW    1812433253ul

◆ KNUTH_MULTIPLIER_OLD

#define KNUTH_MULTIPLIER_OLD    69069

◆ KNUTH_SHIFT

#define KNUTH_SHIFT   30

◆ LOWER_MASK

#define LOWER_MASK   0x7fffffff /* Least significant r bits */

◆ MATRIX_A

#define MATRIX_A   0x9908b0df /* Constant vector A for the */

◆ MATRIX_MULTIPLY

#define MATRIX_MULTIPLY ( original,
new )
Value:
((original) ^ ((new) >> 1) \
^ matrix_decider[(new) & 0x1])

◆ MT_EXTERN

#define MT_EXTERN   /* Generate real code for functions */

◆ MT_GENERATE_CODE_IN_HEADER

#define MT_GENERATE_CODE_IN_HEADER   1 /* Generate code when #including */

◆ MT_INLINE

#define MT_INLINE   /* Disable the inline keyword */

◆ RECURRENCE_OFFSET

#define RECURRENCE_OFFSET   397 /* Offset into state space for the */

◆ UPPER_MASK

#define UPPER_MASK   0x80000000 /* Most significant w-r bits */

Function Documentation

◆ mt_bestseed()

void mt_bestseed ( void )

◆ mt_getstate()

mt_state * mt_getstate ( void )

◆ mt_goodseed()

uint32_t mt_goodseed ( void )

◆ mt_loadstate()

int mt_loadstate ( FILE * statefile)

◆ mt_savestate()

int mt_savestate ( FILE * statefile)

◆ mt_seed()

uint32_t mt_seed ( void )

◆ mt_seed32()

void mt_seed32 ( uint32_t seed)

◆ mt_seed32new()

void mt_seed32new ( uint32_t seed)

◆ mt_seedfull()

void mt_seedfull ( uint32_t seeds[MT_STATE_SIZE])

◆ mts_bestseed()

void mts_bestseed ( mt_state * state)

◆ mts_goodseed()

uint32_t mts_goodseed ( mt_state * state)

◆ mts_loadstate()

int mts_loadstate ( FILE * statefile,
mt_state * state )

◆ mts_mark_initialized()

void mts_mark_initialized ( mt_state * state)

◆ mts_refresh()

void mts_refresh ( register mt_state * state)

◆ mts_savestate()

int mts_savestate ( FILE * statefile,
mt_state * state )

◆ mts_seed()

uint32_t mts_seed ( mt_state * state)

◆ mts_seed32()

void mts_seed32 ( mt_state * state,
uint32_t seed )

◆ mts_seed32new()

void mts_seed32new ( mt_state * state,
uint32_t seed )

◆ mts_seedfull()

void mts_seedfull ( mt_state * state,
uint32_t seeds[MT_STATE_SIZE] )

Variable Documentation

◆ mt_32_to_double

double mt_32_to_double

◆ mt_64_to_double

double mt_64_to_double

◆ mt_default_state

mt_state mt_default_state