48 register uint32_t a, b, x, y, *m, *mm, *m2, *r, *mend;
53 b = (ctx->
randb + (++ctx->
randc)) & 0xffffffff;
55 for (m = mm, mend = m2 = m + (
RANDSIZ / 2); m < mend; ) {
56 rngstep(a << 13, a, b, mm, m, m2, r, x);
57 rngstep(a >> 6 , a, b, mm, m, m2, r, x);
58 rngstep(a << 2 , a, b, mm, m, m2, r, x);
59 rngstep(a >> 16, a, b, mm, m, m2, r, x);
61 for (m2 = mm; m2 < mend; ) {
62 rngstep(a << 13, a, b, mm, m, m2, r, x);
63 rngstep(a >> 6 , a, b, mm, m, m2, r, x);
64 rngstep(a << 2 , a, b, mm, m, m2, r, x);
65 rngstep(a >> 16, a, b, mm, m, m2, r, x);
94 a = b = c = d = e = f = g = h = 0x9e3779b9;
97 for (i = 0; i < 4; ++i) {
99 mix(a, b, c, d, e, f, g, h);
104 for (i = 0; i <
RANDSIZ; i += 8) {
105 a += r[i ]; b += r[i + 1]; c +=r [i + 2]; d += r[i + 3];
106 e += r[i + 4]; f += r[i + 5]; g +=r [i + 6]; h += r[i + 7];
107 mix(a, b, c, d, e, f, g, h);
108 m[i ] = a; m[i + 1] = b; m[i + 2] = c; m[i + 3] = d;
109 m[i + 4] = e; m[i + 5] = f; m[i + 6] = g; m[i + 7] = h;
112 for (i = 0; i <
RANDSIZ; i += 8) {
113 a += m[i ]; b += m[i + 1]; c += m[i + 2]; d += m[i + 3];
114 e += m[i + 4]; f += m[i + 5]; g += m[i + 6]; h += m[i + 7];
115 mix(a, b, c, d, e, f, g, h);
116 m[i ] = a; m[i + 1] = b; m[i + 2] = c; m[i + 3] = d;
117 m[i + 4] = e; m[i + 5] = f; m[i + 6] = g; m[i + 7] = h;
120 for (i = 0; i <
RANDSIZ; i += 8) {
122 mix(a, b, c, d, e, f, g, h);
123 m[i ] = a; m[i + 1] = b; m[i + 2] = c; m[i + 3] = d;
124 m[i + 4] = e; m[i + 5] = f; m[i + 6] = g; m[i + 7] = h;
#define rngstep(mix, a, b, mm, m, m2, r, x)
#define mix(a, b, c, d, e, f, g, h)