Logo ROOT  
Reference Guide
No Matches
mixmax.h File Reference
This graph shows which files directly or indirectly include this file:


struct  rng_state_st


#define BITS   61
#define get_next(X)   GET_BY_MACRO(X)
#define get_next_float(X)   get_next_float_BY_MACRO(X)
#define INV_MERSBASE   (0.4336808689942017736029811203479766845703E-18)
#define M61   2305843009213693951ULL
#define MERSBASE   M61
#define MOD_MERSENNE(k)   MOD_PAYNE(k)
#define MOD_MULSPEC(k)   fmodmulM61( 0, SPECIAL , (k) )
#define MOD_PAYNE(k)   ((((k)) & MERSBASE) + (((k)) >> BITS) )
#define MOD_REM(k)   ((k) % MERSBASE )
#define N   240
#define SEED_WAS_ZERO   0xFF02
#define SPECIAL   487013230256099140ULL
#define SPECIALMUL   51


typedef uint32_t myID_t
typedef uint64_t myuint
typedef struct rng_state_st rng_state_t


myuint apply_bigskip (myuint *Vout, myuint *Vin, myID_t clusterID, myID_t machineID, myID_t runID, myID_t streamID)
void branch_inplace (rng_state_t *Xin, myID_t *ID)
void fill_array (rng_state_t *X, unsigned int n, double *array)
myuint fmodmulM61 (myuint cum, myuint s, myuint a)
myuint GET_BY_MACRO (rng_state_t *X)
double get_next_float_BY_MACRO (rng_state_t *X)
int iterate (rng_state_t *X)
void iterate_and_fill_array (rng_state_t *X, double *array)
myuint iterate_raw_vec (myuint *Y, myuint sumtotOld)
myuint modadd (myuint foo, myuint bar)
myuint precalc (rng_state_t *X)
void print_state (rng_state_t *X)
void read_state (rng_state_t *X, const char filename[])
rng_state_trng_alloc ()
rng_state_trng_copy (myuint *Y)
int rng_free (rng_state_t *X)
int rng_get_N (void)
void seed_spbox (rng_state_t *X, myuint seed)
void seed_uniquestream (rng_state_t *X, myID_t clusterID, myID_t machineID, myID_t runID, myID_t streamID)
void seed_vielbein (rng_state_t *X, unsigned int i)

Macro Definition Documentation



Definition at line 228 of file mixmax.h.


#define BITS   61

Definition at line 110 of file mixmax.h.



Definition at line 232 of file mixmax.h.



Definition at line 231 of file mixmax.h.



Definition at line 230 of file mixmax.h.

◆ get_next

#define get_next (   X)    GET_BY_MACRO(X)

Definition at line 189 of file mixmax.h.

◆ get_next_float

#define get_next_float (   X)    get_next_float_BY_MACRO(X)

Definition at line 190 of file mixmax.h.


#define INV_MERSBASE   (0.4336808689942017736029811203479766845703E-18)

Definition at line 126 of file mixmax.h.

◆ M61

#define M61   2305843009213693951ULL

Definition at line 114 of file mixmax.h.


#define MERSBASE   M61

Definition at line 120 of file mixmax.h.


#define MOD_MERSENNE (   k)    MOD_PAYNE(k)

Definition at line 123 of file mixmax.h.


#define MOD_MULSPEC (   k)    fmodmulM61( 0, SPECIAL , (k) )

Definition at line 171 of file mixmax.h.


#define MOD_PAYNE (   k)    ((((k)) & MERSBASE) + (((k)) >> BITS) )

Definition at line 121 of file mixmax.h.


#define MOD_REM (   k)    ((k) % MERSBASE )

Definition at line 122 of file mixmax.h.

◆ N

#define N   240

Definition at line 31 of file mixmax.h.


#define SEED_WAS_ZERO   0xFF02

Definition at line 229 of file mixmax.h.


#define SPECIAL   487013230256099140ULL

Definition at line 170 of file mixmax.h.


#define SPECIALMUL   51

Definition at line 169 of file mixmax.h.

Typedef Documentation

◆ myID_t

typedef uint32_t myID_t

Definition at line 76 of file mixmax.h.

◆ myuint

typedef uint64_t myuint

Definition at line 45 of file mixmax.h.

◆ rng_state_t

typedef struct rng_state_st rng_state_t

Definition at line 60 of file mixmax.h.

Function Documentation

◆ apply_bigskip()

myuint apply_bigskip ( myuint Vout,
myuint Vin,
myID_t  clusterID,
myID_t  machineID,
myID_t  runID,
myID_t  streamID 

Definition at line 398 of file mixmax.icc.

◆ branch_inplace()

void branch_inplace ( rng_state_t Xin,
myID_t ID 

Definition at line 394 of file mixmax.icc.

◆ fill_array()

void fill_array ( rng_state_t X,
unsigned int  n,
double array 

Definition at line 85 of file mixmax.icc.

◆ fmodmulM61()

myuint fmodmulM61 ( myuint  cum,
myuint  s,
myuint  a 

Definition at line 258 of file mixmax.icc.


myuint GET_BY_MACRO ( rng_state_t X)

Definition at line 195 of file mixmax.h.

◆ get_next_float_BY_MACRO()

double get_next_float_BY_MACRO ( rng_state_t X)

Definition at line 209 of file mixmax.h.

◆ iterate()

int iterate ( rng_state_t X)

Definition at line 34 of file mixmax.icc.

◆ iterate_and_fill_array()

void iterate_and_fill_array ( rng_state_t X,
double array 

Definition at line 105 of file mixmax.icc.

◆ iterate_raw_vec()

myuint iterate_raw_vec ( myuint Y,
myuint  sumtotOld 

Definition at line 47 of file mixmax.icc.

◆ modadd()

myuint modadd ( myuint  foo,
myuint  bar 

Definition at line 137 of file mixmax.icc.

◆ precalc()

myuint precalc ( rng_state_t X)

Definition at line 228 of file mixmax.icc.

◆ print_state()

void print_state ( rng_state_t X)

Definition at line 273 of file mixmax.icc.

◆ read_state()

void read_state ( rng_state_t X,
const char  filename[] 

Definition at line 286 of file mixmax.icc.

◆ rng_alloc()

rng_state_t * rng_alloc ( )

Definition at line 154 of file mixmax.icc.

◆ rng_copy()

rng_state_t * rng_copy ( myuint Y)

Definition at line 168 of file mixmax.icc.

◆ rng_free()

int rng_free ( rng_state_t X)

Definition at line 162 of file mixmax.icc.

◆ rng_get_N()

int rng_get_N ( void  )

Definition at line 240 of file mixmax.icc.

◆ seed_spbox()

void seed_spbox ( rng_state_t X,
myuint  seed 

Definition at line 205 of file mixmax.icc.

◆ seed_uniquestream()

void seed_uniquestream ( rng_state_t X,
myID_t  clusterID,
myID_t  machineID,
myID_t  runID,
myID_t  streamID 

Definition at line 361 of file mixmax.icc.

◆ seed_vielbein()

void seed_vielbein ( rng_state_t X,
unsigned int  i 

Definition at line 188 of file mixmax.icc.