Logo ROOT   6.13/01
Reference Guide
Classes | Macros | Typedefs | Functions
mixmax.h File Reference
This graph shows which files directly or indirectly include this file:

Classes

struct  rng_state_st
 

Macros

#define ARRAY_INDEX_OUT_OF_BOUNDS   0xFF01
 
#define ARRAY_INDEX_OUT_OF_BOUNDS   0xFF01
 
#define BITS   61
 
#define BITS   61
 
#define ERROR_READING_STATE_CHECKSUM   0xFF05
 
#define ERROR_READING_STATE_CHECKSUM   0xFF05
 
#define ERROR_READING_STATE_COUNTER   0xFF04
 
#define ERROR_READING_STATE_COUNTER   0xFF04
 
#define ERROR_READING_STATE_FILE   0xFF03
 
#define ERROR_READING_STATE_FILE   0xFF03
 
#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 INV_MERSBASE   (0.4336808689942017736029811203479766845703E-18)
 
#define M61   2305843009213693951ULL
 
#define M61   2305843009213693951ULL
 
#define MERSBASE   M61
 
#define MERSBASE   M61
 
#define MIXMAX_H_
 
#define MOD_MERSENNE(k)   MOD_PAYNE(k)
 
#define MOD_MERSENNE(k)   MOD_PAYNE(k)
 
#define MOD_MULSPEC(k)   fmodmulM61( 0, SPECIAL , (k) )
 
#define MOD_MULSPEC(k)   fmodmulM61( 0, SPECIAL , (k) )
 
#define MOD_PAYNE(k)   ((((k)) & MERSBASE) + (((k)) >> BITS) )
 
#define MOD_PAYNE(k)   ((((k)) & MERSBASE) + (((k)) >> BITS) )
 
#define MOD_REM(k)   ((k) % MERSBASE )
 
#define MOD_REM(k)   ((k) % MERSBASE )
 
#define N   240
 
#define N   240
 
#define SEED_WAS_ZERO   0xFF02
 
#define SEED_WAS_ZERO   0xFF02
 
#define SPECIAL   487013230256099140ULL
 
#define SPECIAL   487013230256099140ULL
 
#define SPECIALMUL   51
 
#define SPECIALMUL   51
 

Typedefs

typedef uint32_t myID_t
 
typedef uint64_t myuint
 
typedef struct rng_state_st rng_state_t
 

Functions

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

◆ ARRAY_INDEX_OUT_OF_BOUNDS [1/2]

#define ARRAY_INDEX_OUT_OF_BOUNDS   0xFF01

Definition at line 229 of file MixMaxEngineImpl.h.

◆ ARRAY_INDEX_OUT_OF_BOUNDS [2/2]

#define ARRAY_INDEX_OUT_OF_BOUNDS   0xFF01

◆ BITS [1/2]

#define BITS   61

◆ BITS [2/2]

#define BITS   61

Definition at line 111 of file MixMaxEngineImpl.h.

◆ ERROR_READING_STATE_CHECKSUM [1/2]

#define ERROR_READING_STATE_CHECKSUM   0xFF05

◆ ERROR_READING_STATE_CHECKSUM [2/2]

#define ERROR_READING_STATE_CHECKSUM   0xFF05

Definition at line 233 of file MixMaxEngineImpl.h.

◆ ERROR_READING_STATE_COUNTER [1/2]

#define ERROR_READING_STATE_COUNTER   0xFF04

Definition at line 232 of file MixMaxEngineImpl.h.

◆ ERROR_READING_STATE_COUNTER [2/2]

#define ERROR_READING_STATE_COUNTER   0xFF04

◆ ERROR_READING_STATE_FILE [1/2]

#define ERROR_READING_STATE_FILE   0xFF03

Definition at line 231 of file MixMaxEngineImpl.h.

◆ ERROR_READING_STATE_FILE [2/2]

#define ERROR_READING_STATE_FILE   0xFF03

◆ 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.

◆ INV_MERSBASE [1/2]

#define INV_MERSBASE   (0.4336808689942017736029811203479766845703E-18)

Definition at line 127 of file MixMaxEngineImpl.h.

◆ INV_MERSBASE [2/2]

#define INV_MERSBASE   (0.4336808689942017736029811203479766845703E-18)

◆ M61 [1/2]

#define M61   2305843009213693951ULL

◆ M61 [2/2]

#define M61   2305843009213693951ULL

Definition at line 115 of file MixMaxEngineImpl.h.

◆ MERSBASE [1/2]

#define MERSBASE   M61

Definition at line 121 of file MixMaxEngineImpl.h.

◆ MERSBASE [2/2]

#define MERSBASE   M61

◆ MIXMAX_H_

#define MIXMAX_H_

Definition at line 23 of file MixMaxEngineImpl.h.

◆ MOD_MERSENNE [1/2]

#define MOD_MERSENNE (   k)    MOD_PAYNE(k)

◆ MOD_MERSENNE [2/2]

#define MOD_MERSENNE (   k)    MOD_PAYNE(k)

Definition at line 124 of file MixMaxEngineImpl.h.

◆ MOD_MULSPEC [1/2]

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

Definition at line 172 of file MixMaxEngineImpl.h.

◆ MOD_MULSPEC [2/2]

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

◆ MOD_PAYNE [1/2]

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

Definition at line 122 of file MixMaxEngineImpl.h.

◆ MOD_PAYNE [2/2]

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

◆ MOD_REM [1/2]

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

Definition at line 123 of file MixMaxEngineImpl.h.

◆ MOD_REM [2/2]

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

◆ N [1/2]

#define N   240

Definition at line 32 of file MixMaxEngineImpl.h.

◆ N [2/2]

#define N   240

◆ SEED_WAS_ZERO [1/2]

#define SEED_WAS_ZERO   0xFF02

Definition at line 230 of file MixMaxEngineImpl.h.

◆ SEED_WAS_ZERO [2/2]

#define SEED_WAS_ZERO   0xFF02

◆ SPECIAL [1/2]

#define SPECIAL   487013230256099140ULL

◆ SPECIAL [2/2]

#define SPECIAL   487013230256099140ULL

Definition at line 171 of file MixMaxEngineImpl.h.

◆ SPECIALMUL [1/2]

#define SPECIALMUL   51

Definition at line 170 of file MixMaxEngineImpl.h.

◆ SPECIALMUL [2/2]

#define SPECIALMUL   51

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 
)
inline

Definition at line 258 of file mixmax.icc.

◆ GET_BY_MACRO()

myuint GET_BY_MACRO ( rng_state_t X)
inline

Definition at line 195 of file mixmax.h.

◆ get_next_float_BY_MACRO()

double get_next_float_BY_MACRO ( rng_state_t X)
inline

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.