140 static const size_t ND = 2048;
157 void p_init(uint64 s,
int nRANK);
158 void p_seed(uint64 s,
int nRANK);
168 void p_u64(
void* pool,
size_t size);
169 void p_dbl(
void* pool,
size_t size);
170 void p_flt(
void* pool,
size_t size);
171 void p_zig(
void* pool,
size_t size);
219 double x = u*p_zigxd[i];
220 double e2 = exp( -0.5*
pow2(x) );
244 oss <<
"PRNG seed: 0x" << setw(16) << setfill(
'0') << hex <<
p_s;
int32 i31()
Definition: ran.h:190
t_ran & operator=(const t_ran &)=delete
const double * p_zigrd
Definition: ran.h:154
void * p_pool
Definition: ran.h:27
int64 i63()
Definition: ran.h:194
size_t p_npack
Definition: ran.h:148
#define LIKELY(x)
Definition: cpu.h:479
ran_pool()
Definition: ran.h:77
ran_pool< sys_float > p_pf
Definition: ran.h:178
algo_prng
Definition: ran.h:104
void p_xoshiro256starstar(uint64 *pool, size_t size)
Definition: ran.cpp:294
void p_dbl(void *pool, size_t size)
Definition: ran.cpp:315
void p_init(uint64 s, int nRANK)
Definition: ran.cpp:586
~ran_pool()
Definition: ran.h:86
const double * p_zigxd
Definition: ran.h:153
realnum rnm()
Definition: ran.h:200
void reset()
Definition: ran.h:62
bool p_lgInitialized
Definition: ran.h:145
uint64 * p_state
Definition: ran.h:151
static const size_t ND
Definition: ran.h:140
const double * p_zige2d
Definition: ran.h:155
ran_pool< uint32 > p_pi
Definition: ran.h:175
t_ran * p_rc
Definition: ran.h:32
uint8 u8()
Definition: ran.h:184
ran_pool & operator=(const ran_pool &)=delete
~t_ran()
Definition: ran.h:251
void init()
Definition: ran.h:226
uint32 u32()
Definition: ran.h:192
void p_xoroshiro128plus(uint64 *pool, size_t size)
Definition: ran.cpp:289
T * p_next
Definition: ran.h:28
string print_seed() const
Definition: ran.h:241
float realnum
Definition: cddefines.h:127
ran_pool< uint8 > p_pc
Definition: ran.h:173
uint64 p_generate_random_seed()
Definition: ran.cpp:625
void p_u64(void *pool, size_t size)
Definition: ran.cpp:302
void p_flt(void *pool, size_t size)
Definition: ran.cpp:327
#define NULL
Definition: cddefines.h:115
static const size_t SQ_XOSHIRO256
Definition: ran.h:143
ran_pool< uint64 > p_pl
Definition: ran.h:176
t_ran(algo_prng algo)
Definition: ran.cpp:653
algo_prng p_algo
Definition: ran.h:146
uint64 u64()
Definition: ran.h:196
void posix_memalign_free(void *p)
Definition: cpu.h:143
uint16 u16()
Definition: ran.h:188
size_t p_squad
Definition: ran.h:31
double normal()
Definition: ran.h:209
#define ASSERT(exp)
Definition: cddefines.h:637
uint64 p_s
Definition: ran.h:150
ran_pool< double > p_pd
Definition: ran.h:177
T pow2(T a)
Definition: cddefines.h:987
void init(size_t s, t_ran *rc, t_ran_fun f)
Definition: ran.h:51
void p_alloc()
Definition: ran.h:35
double p_ZigTailNormal(bool lgNegative)
Definition: ran.cpp:571
double dbl()
Definition: ran.h:198
#define UNLIKELY(x)
Definition: cpu.h:490
T * p_end
Definition: ran.h:29
size_t p_size
Definition: ran.h:30
void p_seed(uint64 s, int nRANK)
Definition: ran.cpp:609
void init(uint64 s, int nRANK)
Definition: ran.h:231
void p_zig(void *pool, size_t size)
Definition: ran.cpp:339
double e2(double x)
Definition: thirdparty.cpp:3100
size_t p_sq
Definition: ran.h:147
bool lgInitialized() const
Definition: ran.h:66
void p_update_pool()
Definition: ran.h:42
int16 i15()
Definition: ran.h:186
#define CD_ALIGN
Definition: cpu.h:127
ran_pool< double > p_zd
Definition: ran.h:179
T next()
Definition: ran.h:70
void new_rank(int nRANK)
Definition: ran.h:235
int8 i7()
Definition: ran.h:182
t_ran_fun p_fill
Definition: ran.h:33
ran_pool< uint16 > p_ps
Definition: ran.h:174
size_t p_ns
Definition: ran.h:149
uint64 get_seed() const
Definition: ran.h:240
static const size_t SQ_XOROSHIRO128
Definition: ran.h:142
void(t_ran::* t_ran_fun)(void *p, size_t s)
Definition: ran.h:10