MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / gen_rand_array

Function gen_rand_array

deps/jemalloc/test/src/SFMT.c:312–342  ·  view source on GitHub ↗

* This function fills the user-specified array with pseudorandom * integers. * * @param array an 128-bit array to be filled by pseudorandom numbers. * @param size number of 128-bit pseudorandom numbers to be generated. */

Source from the content-addressed store, hash-verified

310 * @param size number of 128-bit pseudorandom numbers to be generated.
311 */
312static inline void gen_rand_array(sfmt_t *ctx, w128_t *array, int size) {
313 int i, j;
314 w128_t *r1, *r2;
315
316 r1 = &ctx->sfmt[N - 2];
317 r2 = &ctx->sfmt[N - 1];
318 for (i = 0; i < N - POS1; i++) {
319 do_recursion(&array[i], &ctx->sfmt[i], &ctx->sfmt[i + POS1], r1, r2);
320 r1 = r2;
321 r2 = &array[i];
322 }
323 for (; i < N; i++) {
324 do_recursion(&array[i], &ctx->sfmt[i], &array[i + POS1 - N], r1, r2);
325 r1 = r2;
326 r2 = &array[i];
327 }
328 for (; i < size - N; i++) {
329 do_recursion(&array[i], &array[i - N], &array[i + POS1 - N], r1, r2);
330 r1 = r2;
331 r2 = &array[i];
332 }
333 for (j = 0; j < 2 * N - size; j++) {
334 ctx->sfmt[j] = array[j + size - N];
335 }
336 for (; i < size; i++, j++) {
337 do_recursion(&array[i], &array[i - N], &array[i + POS1 - N], r1, r2);
338 r1 = r2;
339 r2 = &array[i];
340 ctx->sfmt[j] = array[i];
341 }
342}
343#endif
344
345#if defined(BIG_ENDIAN64) && !defined(ONLY64) && !defined(HAVE_ALTIVEC)

Callers 2

fill_array32Function · 0.70
fill_array64Function · 0.70

Calls 1

do_recursionFunction · 0.70

Tested by

no test coverage detected