1 #include <../../nrnconf.h>
21 #pragma implementation
116 {3,7,16}, {4,9, 32}, {3,10, 32}, {1,11, 32}, {1,15,64}, {3,17,128},
117 {7,18,128}, {3,20,128}, {2,21, 128}, {1,22, 128}, {5,23, 128}, {3,25, 128},
118 {2,29, 128}, {3,31, 128}, {13,33, 256}, {2,35, 256}, {11,36, 256},
119 {14,39,256}, {3,41,256}, {9,49,256}, {3,52,256}, {24,55,256}, {7,57, 256},
120 {19,58,256}, {38,89,512}, {17,95,512}, {6,97,512}, {11,98,512}, {-1,-1,-1} };
127 #define RANDOM_PERM_SIZE 64
129 0xffffffff, 0x00000000, 0x00000000, 0x00000000,
130 0x0000ffff, 0x00ff0000, 0x00000000, 0xff000000,
131 0xff0000ff, 0x0000ff00, 0x00000000, 0x00ff0000,
132 0x00ff00ff, 0x00000000, 0xff00ff00, 0x00000000,
134 0xffff0000, 0x000000ff, 0x00000000, 0x0000ff00,
135 0x00000000, 0x00ff00ff, 0x00000000, 0xff00ff00,
136 0xff000000, 0x00000000, 0x000000ff, 0x00ffff00,
137 0x00000000, 0x00000000, 0x00000000, 0xffffffff,
139 0xff00ff00, 0x00000000, 0x00ff00ff, 0x00000000,
140 0x0000ff00, 0x00000000, 0x00ff0000, 0xff0000ff,
141 0x00000000, 0x00000000, 0xffffffff, 0x00000000,
142 0x00000000, 0x0000ff00, 0xffff0000, 0x000000ff,
144 0x00000000, 0xffffffff, 0x00000000, 0x00000000,
145 0x00ffff00, 0xff000000, 0x00000000, 0x000000ff,
146 0x00000000, 0xff000000, 0x0000ffff, 0x00ff0000,
147 0x00000000, 0xff00ff00, 0x00000000, 0x00ff00ff
153 #define SEED_TABLE_SIZE 32
155 0xbdcc47e5, 0x54aea45d, 0xec0df859, 0xda84637b,
156 0xc8c6cb4f, 0x35574b01, 0x28260b7d, 0x0d07fdbf,
157 0x9faaeeb0, 0x613dd169, 0x5ce2d818, 0x85b9e706,
158 0xab2469db, 0xda02b0dc, 0x45c60d6e, 0xffe49d10,
159 0x7224fea3, 0xf9684fc9, 0xfc7ee074, 0x326ce92a,
160 0x366d13b5, 0x17aaa731, 0xeb83a675, 0x7781cb32,
161 0x4ec7c92d, 0x7f187521, 0x2cf346b4, 0xad13310f,
162 0xb89cff2b, 0x12164de1, 0xa865168d, 0x32b56cdf
176 static const uint32_t
LC_A = 66049;
177 static const uint32_t
LC_C = 3907864577U;
178 static inline uint32_t
LCG(uint32_t x)
251 assert(
sizeof(
double) == 2 *
sizeof(int32_t));
274 uint32_t auxACG =
auxState[auxIndex];
284 result = *(perm++) & auxACG;
285 result |= *(perm++) & ((auxACG << 24)
286 | ((auxACG >> 8)& 0xffffff));
287 result |= *(perm++) & ((auxACG << 16)
288 | ((auxACG >> 16) & 0xffff));
289 result |= *(perm++) & ((auxACG << 8)
290 | ((auxACG >> 24) & 0xff));
uint32_t randomPermutations[RANDOM_PERM_SIZE]
static const uint32_t LC_C
static uint32_t seedTable[SEED_TABLE_SIZE]
static uint32_t LCG(uint32_t x)
static const uint32_t LC_A
static int randomStateTable[][3]
ACG(uint32_t seed=0, int size=55)
virtual uint32_t asLong()