1 #include <../../nrnconf.h>
7 #include <Random123/philox.h>
9 static const double SHIFT32 = 1.0 / 4294967297.0;
11 static philox4x32_key_t
k = {{0}};
51 if (which > 3 || which < 0) {
57 s->
r = philox4x32(s->
c,
k);
75 rval = s->
r.v[which++];
79 s->
r = philox4x32(s->
c,
k);
104 w = (u1 * u1) + (u2 * u2);
122 philox4x32_ctr_t r = philox4x32(
c,
k);
133 return ((
double) u + 1.0) *
SHIFT32;
void * ecalloc(size_t n, size_t size)
double nrnran123_uint2dbl(uint32_t u)
void nrnran123_setseq(nrnran123_State *s, uint32_t seq, char which)
double nrnran123_normal(nrnran123_State *s)
void nrnran123_getids3(nrnran123_State *s, uint32_t *id1, uint32_t *id2, uint32_t *id3)
nrnran123_array4x32 nrnran123_iran(uint32_t seq, uint32_t id1, uint32_t id2)
void nrnran123_getids(nrnran123_State *s, uint32_t *id1, uint32_t *id2)
static philox4x32_key_t k
static const double SHIFT32
void nrnran123_set_globalindex(uint32_t gix)
uint32_t nrnran123_ipick(nrnran123_State *s)
void nrnran123_getseq(nrnran123_State *s, uint32_t *seq, char *which)
void nrnran123_deletestream(nrnran123_State *s)
nrnran123_State * nrnran123_newstream(uint32_t id1, uint32_t id2)
double nrnran123_dblpick(nrnran123_State *s)
uint32_t nrnran123_get_globalindex()
double nrnran123_negexp(nrnran123_State *s)
nrnran123_array4x32 nrnran123_iran3(uint32_t seq, uint32_t id1, uint32_t id2, uint32_t id3)
nrnran123_State * nrnran123_newstream3(uint32_t id1, uint32_t id2, uint32_t id3)