MCKL
Monte Carlo Kernel Library
Classes | Functions
threefry.h File Reference
#include <mckl/internal/config.h>

Go to the source code of this file.

Classes

struct  mckl_threefry2x32
 Threefry2x32 RNG state structure. More...
 
struct  mckl_threefry2x32_ctr_t
 Threefry2x32 counter type. More...
 
struct  mckl_threefry2x32_key_t
 Threefry2x32 key type. More...
 
struct  mckl_threefry2x32_par_t
 
struct  mckl_threefry2x64
 Threefry2x64 RNG state structure. More...
 
struct  mckl_threefry2x64_ctr_t
 Threefry2x64 counter type. More...
 
struct  mckl_threefry2x64_key_t
 Threefry2x64 key type. More...
 
struct  mckl_threefry2x64_par_t
 
struct  mckl_threefry4x32
 Threefry4x32 RNG state structure. More...
 
struct  mckl_threefry4x32_ctr_t
 Threefry4x32 counter type. More...
 
struct  mckl_threefry4x32_key_t
 Threefry4x32 key type. More...
 
struct  mckl_threefry4x32_par_t
 
struct  mckl_threefry4x64
 Threefry4x64 RNG state structure. More...
 
struct  mckl_threefry4x64_ctr_t
 Threefry4x64 counter type. More...
 
struct  mckl_threefry4x64_key_t
 Threefry4x64 key type. More...
 
struct  mckl_threefry4x64_par_t
 

Functions

static void mckl_threefry2x32_gen (const mckl_threefry2x32_ctr_t *ctr, const mckl_threefry2x32_key_t *key, mckl_threefry2x32_ctr_t *state)
 Generate Threefry2x32 RNG state. More...
 
static void mckl_threefry2x32_inc (mckl_threefry2x32_ctr_t *ctr)
 
static void mckl_threefry2x32_init (mckl_threefry2x32 *rng, uint32_t seed)
 Initialize Threefry2x32 RNG state. More...
 
static void mckl_threefry2x32_initpar (const mckl_threefry2x32_key_t *key, mckl_threefry2x32_par_t *par)
 
static void mckl_threefry2x32_insertkey (mckl_threefry2x32_ctr_t *state, const mckl_threefry2x32_par_t *par, uint32_t inc, int i0, int i1)
 
static uint32_t mckl_threefry2x32_rand (mckl_threefry2x32 *rng)
 Generate random 32-bit integers from Threefry2x32 RNG. More...
 
static void mckl_threefry2x32_rotate (mckl_threefry2x32_ctr_t *state, uint32_t r)
 
static void mckl_threefry2x64_gen (const mckl_threefry2x64_ctr_t *ctr, const mckl_threefry2x64_key_t *key, mckl_threefry2x64_ctr_t *state)
 Generate Threefry2x64 RNG state. More...
 
static void mckl_threefry2x64_inc (mckl_threefry2x64_ctr_t *ctr)
 
static void mckl_threefry2x64_init (mckl_threefry2x64 *rng, uint64_t seed)
 Initialize Threefry2x64 RNG state. More...
 
static void mckl_threefry2x64_initpar (const mckl_threefry2x64_key_t *key, mckl_threefry2x64_par_t *par)
 
static void mckl_threefry2x64_insertkey (mckl_threefry2x64_ctr_t *state, const mckl_threefry2x64_par_t *par, uint64_t inc, int i0, int i1)
 
static uint64_t mckl_threefry2x64_rand (mckl_threefry2x64 *rng)
 Generate random 64-bit integers from Threefry2x64 RNG. More...
 
static void mckl_threefry2x64_rotate (mckl_threefry2x64_ctr_t *state, uint64_t r)
 
static void mckl_threefry4x32_gen (const mckl_threefry4x32_ctr_t *ctr, const mckl_threefry4x32_key_t *key, mckl_threefry4x32_ctr_t *state)
 Generate Threefry4x32 RNG state. More...
 
static void mckl_threefry4x32_inc (mckl_threefry4x32_ctr_t *ctr)
 
static void mckl_threefry4x32_init (mckl_threefry4x32 *rng, uint32_t seed)
 Initialize Threefry4x32 RNG state. More...
 
static void mckl_threefry4x32_initpar (const mckl_threefry4x32_key_t *key, mckl_threefry4x32_par_t *par)
 
static void mckl_threefry4x32_insertkey (mckl_threefry4x32_ctr_t *state, const mckl_threefry4x32_par_t *par, uint32_t inc, int i0, int i1, int i2, int i3)
 
static uint32_t mckl_threefry4x32_rand (mckl_threefry4x32 *rng)
 Generate random 32-bit integers from Threefry4x32 RNG. More...
 
static void mckl_threefry4x32_rotate (mckl_threefry4x32_ctr_t *state, uint32_t r0, uint32_t r2, int i0, int i2)
 
static void mckl_threefry4x64_gen (const mckl_threefry4x64_ctr_t *ctr, const mckl_threefry4x64_key_t *key, mckl_threefry4x64_ctr_t *state)
 Generate Threefry4x64 RNG state. More...
 
static void mckl_threefry4x64_inc (mckl_threefry4x64_ctr_t *ctr)
 
static void mckl_threefry4x64_init (mckl_threefry4x64 *rng, uint64_t seed)
 Initialize Threefry4x64 RNG state. More...
 
static void mckl_threefry4x64_initpar (const mckl_threefry4x64_key_t *key, mckl_threefry4x64_par_t *par)
 
static void mckl_threefry4x64_insertkey (mckl_threefry4x64_ctr_t *state, const mckl_threefry4x64_par_t *par, uint64_t inc, int i0, int i1, int i2, int i3)
 
static uint64_t mckl_threefry4x64_rand (mckl_threefry4x64 *rng)
 Generate random 64-bit integers from Threefry4x64 RNG. More...
 
static void mckl_threefry4x64_rotate (mckl_threefry4x64_ctr_t *state, uint64_t r0, uint64_t r2, int i0, int i2)
 

Function Documentation

◆ mckl_threefry2x32_inc()

static void mckl_threefry2x32_inc ( mckl_threefry2x32_ctr_t ctr)
inlinestatic

Definition at line 141 of file threefry.h.

◆ mckl_threefry2x32_initpar()

static void mckl_threefry2x32_initpar ( const mckl_threefry2x32_key_t key,
mckl_threefry2x32_par_t par 
)
inlinestatic

Definition at line 193 of file threefry.h.

◆ mckl_threefry2x32_insertkey()

static void mckl_threefry2x32_insertkey ( mckl_threefry2x32_ctr_t state,
const mckl_threefry2x32_par_t par,
uint32_t  inc,
int  i0,
int  i1 
)
inlinestatic

Definition at line 285 of file threefry.h.

◆ mckl_threefry2x32_rotate()

static void mckl_threefry2x32_rotate ( mckl_threefry2x32_ctr_t state,
uint32_t  r 
)
inlinestatic

Definition at line 245 of file threefry.h.

◆ mckl_threefry2x64_inc()

static void mckl_threefry2x64_inc ( mckl_threefry2x64_ctr_t ctr)
inlinestatic

Definition at line 167 of file threefry.h.

◆ mckl_threefry2x64_initpar()

static void mckl_threefry2x64_initpar ( const mckl_threefry2x64_key_t key,
mckl_threefry2x64_par_t par 
)
inlinestatic

Definition at line 219 of file threefry.h.

◆ mckl_threefry2x64_insertkey()

static void mckl_threefry2x64_insertkey ( mckl_threefry2x64_ctr_t state,
const mckl_threefry2x64_par_t par,
uint64_t  inc,
int  i0,
int  i1 
)
inlinestatic

Definition at line 304 of file threefry.h.

◆ mckl_threefry2x64_rotate()

static void mckl_threefry2x64_rotate ( mckl_threefry2x64_ctr_t state,
uint64_t  r 
)
inlinestatic

Definition at line 265 of file threefry.h.

◆ mckl_threefry4x32_inc()

static void mckl_threefry4x32_inc ( mckl_threefry4x32_ctr_t ctr)
inlinestatic

Definition at line 151 of file threefry.h.

◆ mckl_threefry4x32_initpar()

static void mckl_threefry4x32_initpar ( const mckl_threefry4x32_key_t key,
mckl_threefry4x32_par_t par 
)
inlinestatic

Definition at line 204 of file threefry.h.

◆ mckl_threefry4x32_insertkey()

static void mckl_threefry4x32_insertkey ( mckl_threefry4x32_ctr_t state,
const mckl_threefry4x32_par_t par,
uint32_t  inc,
int  i0,
int  i1,
int  i2,
int  i3 
)
inlinestatic

Definition at line 293 of file threefry.h.

◆ mckl_threefry4x32_rotate()

static void mckl_threefry4x32_rotate ( mckl_threefry4x32_ctr_t state,
uint32_t  r0,
uint32_t  r2,
int  i0,
int  i2 
)
inlinestatic

Definition at line 253 of file threefry.h.

◆ mckl_threefry4x64_inc()

static void mckl_threefry4x64_inc ( mckl_threefry4x64_ctr_t ctr)
inlinestatic

Definition at line 177 of file threefry.h.

◆ mckl_threefry4x64_initpar()

static void mckl_threefry4x64_initpar ( const mckl_threefry4x64_key_t key,
mckl_threefry4x64_par_t par 
)
inlinestatic

Definition at line 230 of file threefry.h.

◆ mckl_threefry4x64_insertkey()

static void mckl_threefry4x64_insertkey ( mckl_threefry4x64_ctr_t state,
const mckl_threefry4x64_par_t par,
uint64_t  inc,
int  i0,
int  i1,
int  i2,
int  i3 
)
inlinestatic

Definition at line 312 of file threefry.h.

◆ mckl_threefry4x64_rotate()

static void mckl_threefry4x64_rotate ( mckl_threefry4x64_ctr_t state,
uint64_t  r0,
uint64_t  r2,
int  i0,
int  i2 
)
inlinestatic

Definition at line 273 of file threefry.h.