vSMC
vSMC: Scalable Monte Carlo
Classes | Functions
threefry.h File Reference
#include <vsmc/internal/config.h>

Go to the source code of this file.

Classes

struct  vsmc_threefry2x32
 Threefry2x32 RNG state structure. More...
 
struct  vsmc_threefry2x32_ctr_t
 Threefry2x32 counter type. More...
 
struct  vsmc_threefry2x32_key_t
 Threefry2x32 key type. More...
 
struct  vsmc_threefry2x32_par_t
 
struct  vsmc_threefry2x64
 Threefry2x64 RNG state structure. More...
 
struct  vsmc_threefry2x64_ctr_t
 Threefry2x64 counter type. More...
 
struct  vsmc_threefry2x64_key_t
 Threefry2x64 key type. More...
 
struct  vsmc_threefry2x64_par_t
 
struct  vsmc_threefry4x32
 Threefry4x32 RNG state structure. More...
 
struct  vsmc_threefry4x32_ctr_t
 Threefry4x32 counter type. More...
 
struct  vsmc_threefry4x32_key_t
 Threefry4x32 key type. More...
 
struct  vsmc_threefry4x32_par_t
 
struct  vsmc_threefry4x64
 Threefry4x64 RNG state structure. More...
 
struct  vsmc_threefry4x64_ctr_t
 Threefry4x64 counter type. More...
 
struct  vsmc_threefry4x64_key_t
 Threefry4x64 key type. More...
 
struct  vsmc_threefry4x64_par_t
 

Functions

static void vsmc_threefry2x32_gen (const vsmc_threefry2x32_ctr_t *ctr, const vsmc_threefry2x32_key_t *key, vsmc_threefry2x32_ctr_t *state)
 Generate Threefry2x32 RNG state. More...
 
static void vsmc_threefry2x32_inc (vsmc_threefry2x32_ctr_t *ctr)
 
static void vsmc_threefry2x32_init (vsmc_threefry2x32 *rng, uint32_t seed)
 Initialize Threefry2x32 RNG state. More...
 
static void vsmc_threefry2x32_initpar (const vsmc_threefry2x32_key_t *key, vsmc_threefry2x32_par_t *par)
 
static void vsmc_threefry2x32_insertkey (vsmc_threefry2x32_ctr_t *state, const vsmc_threefry2x32_par_t *par, uint32_t inc, int i0, int i1)
 
static uint32_t vsmc_threefry2x32_rand (vsmc_threefry2x32 *rng)
 Generate random 32-bits integers from Threefry2x32 RNG. More...
 
static void vsmc_threefry2x32_rotate (vsmc_threefry2x32_ctr_t *state, uint32_t r)
 
static void vsmc_threefry2x64_gen (const vsmc_threefry2x64_ctr_t *ctr, const vsmc_threefry2x64_key_t *key, vsmc_threefry2x64_ctr_t *state)
 Generate Threefry2x64 RNG state. More...
 
static void vsmc_threefry2x64_inc (vsmc_threefry2x64_ctr_t *ctr)
 
static void vsmc_threefry2x64_init (vsmc_threefry2x64 *rng, uint64_t seed)
 Initialize Threefry2x64 RNG state. More...
 
static void vsmc_threefry2x64_initpar (const vsmc_threefry2x64_key_t *key, vsmc_threefry2x64_par_t *par)
 
static void vsmc_threefry2x64_insertkey (vsmc_threefry2x64_ctr_t *state, const vsmc_threefry2x64_par_t *par, uint64_t inc, int i0, int i1)
 
static uint64_t vsmc_threefry2x64_rand (vsmc_threefry2x64 *rng)
 Generate random 64-bits integers from Threefry2x64 RNG. More...
 
static void vsmc_threefry2x64_rotate (vsmc_threefry2x64_ctr_t *state, uint64_t r)
 
static void vsmc_threefry4x32_gen (const vsmc_threefry4x32_ctr_t *ctr, const vsmc_threefry4x32_key_t *key, vsmc_threefry4x32_ctr_t *state)
 Generate Threefry4x32 RNG state. More...
 
static void vsmc_threefry4x32_inc (vsmc_threefry4x32_ctr_t *ctr)
 
static void vsmc_threefry4x32_init (vsmc_threefry4x32 *rng, uint32_t seed)
 Initialize Threefry4x32 RNG state. More...
 
static void vsmc_threefry4x32_initpar (const vsmc_threefry4x32_key_t *key, vsmc_threefry4x32_par_t *par)
 
static void vsmc_threefry4x32_insertkey (vsmc_threefry4x32_ctr_t *state, const vsmc_threefry4x32_par_t *par, uint32_t inc, int i0, int i1, int i2, int i3)
 
static uint32_t vsmc_threefry4x32_rand (vsmc_threefry4x32 *rng)
 Generate random 32-bits integers from Threefry4x32 RNG. More...
 
static void vsmc_threefry4x32_rotate (vsmc_threefry4x32_ctr_t *state, uint32_t r0, uint32_t r2, int i0, int i2)
 
static void vsmc_threefry4x64_gen (const vsmc_threefry4x64_ctr_t *ctr, const vsmc_threefry4x64_key_t *key, vsmc_threefry4x64_ctr_t *state)
 Generate Threefry4x64 RNG state. More...
 
static void vsmc_threefry4x64_inc (vsmc_threefry4x64_ctr_t *ctr)
 
static void vsmc_threefry4x64_init (vsmc_threefry4x64 *rng, uint64_t seed)
 Initialize Threefry4x64 RNG state. More...
 
static void vsmc_threefry4x64_initpar (const vsmc_threefry4x64_key_t *key, vsmc_threefry4x64_par_t *par)
 
static void vsmc_threefry4x64_insertkey (vsmc_threefry4x64_ctr_t *state, const vsmc_threefry4x64_par_t *par, uint64_t inc, int i0, int i1, int i2, int i3)
 
static uint64_t vsmc_threefry4x64_rand (vsmc_threefry4x64 *rng)
 Generate random 64-bits integers from Threefry4x64 RNG. More...
 
static void vsmc_threefry4x64_rotate (vsmc_threefry4x64_ctr_t *state, uint64_t r0, uint64_t r2, int i0, int i2)
 

Function Documentation

static void vsmc_threefry2x32_inc ( vsmc_threefry2x32_ctr_t ctr)
inlinestatic

Definition at line 137 of file threefry.h.

static void vsmc_threefry2x32_initpar ( const vsmc_threefry2x32_key_t key,
vsmc_threefry2x32_par_t par 
)
inlinestatic

Definition at line 177 of file threefry.h.

static void vsmc_threefry2x32_insertkey ( vsmc_threefry2x32_ctr_t state,
const vsmc_threefry2x32_par_t par,
uint32_t  inc,
int  i0,
int  i1 
)
inlinestatic

Definition at line 269 of file threefry.h.

static void vsmc_threefry2x32_rotate ( vsmc_threefry2x32_ctr_t state,
uint32_t  r 
)
inlinestatic

Definition at line 229 of file threefry.h.

static void vsmc_threefry2x64_inc ( vsmc_threefry2x64_ctr_t ctr)
inlinestatic

Definition at line 157 of file threefry.h.

static void vsmc_threefry2x64_initpar ( const vsmc_threefry2x64_key_t key,
vsmc_threefry2x64_par_t par 
)
inlinestatic

Definition at line 203 of file threefry.h.

static void vsmc_threefry2x64_insertkey ( vsmc_threefry2x64_ctr_t state,
const vsmc_threefry2x64_par_t par,
uint64_t  inc,
int  i0,
int  i1 
)
inlinestatic

Definition at line 288 of file threefry.h.

static void vsmc_threefry2x64_rotate ( vsmc_threefry2x64_ctr_t state,
uint64_t  r 
)
inlinestatic

Definition at line 249 of file threefry.h.

static void vsmc_threefry4x32_inc ( vsmc_threefry4x32_ctr_t ctr)
inlinestatic

Definition at line 145 of file threefry.h.

static void vsmc_threefry4x32_initpar ( const vsmc_threefry4x32_key_t key,
vsmc_threefry4x32_par_t par 
)
inlinestatic

Definition at line 188 of file threefry.h.

static void vsmc_threefry4x32_insertkey ( vsmc_threefry4x32_ctr_t state,
const vsmc_threefry4x32_par_t par,
uint32_t  inc,
int  i0,
int  i1,
int  i2,
int  i3 
)
inlinestatic

Definition at line 277 of file threefry.h.

static void vsmc_threefry4x32_rotate ( vsmc_threefry4x32_ctr_t state,
uint32_t  r0,
uint32_t  r2,
int  i0,
int  i2 
)
inlinestatic

Definition at line 237 of file threefry.h.

static void vsmc_threefry4x64_inc ( vsmc_threefry4x64_ctr_t ctr)
inlinestatic

Definition at line 165 of file threefry.h.

static void vsmc_threefry4x64_initpar ( const vsmc_threefry4x64_key_t key,
vsmc_threefry4x64_par_t par 
)
inlinestatic

Definition at line 214 of file threefry.h.

static void vsmc_threefry4x64_insertkey ( vsmc_threefry4x64_ctr_t state,
const vsmc_threefry4x64_par_t par,
uint64_t  inc,
int  i0,
int  i1,
int  i2,
int  i3 
)
inlinestatic

Definition at line 296 of file threefry.h.

static void vsmc_threefry4x64_rotate ( vsmc_threefry4x64_ctr_t state,
uint64_t  r0,
uint64_t  r2,
int  i0,
int  i2 
)
inlinestatic

Definition at line 257 of file threefry.h.