Lines Matching refs:rng
392 * @param rng The PRNG on the top of the stack. Must have been seeded.
395 bc_rand_seedZeroes(BcRNG* r, BcRNGData* rng, size_t idx)
413 bc_rand_copy(bc_vec_item_rev(&r->v, i), rng);
419 bc_rand_srand(BcRNGData* rng)
432 bc_rand_fill(rng, bc_rand_frand, &fd);
442 bc_rand_fill(rng, bc_rand_frand, &fd);
448 bc_rand_fill(rng, bc_rand_winrand, NULL);
452 while (BC_ERR(BC_RAND_ZERO(rng)))
454 bc_rand_fill(rng, bc_rand_rand, NULL);
464 * @param rng The PRNG that will be used to seed the others.
467 bc_rand_propagate(BcRNG* r, BcRNGData* rng)
473 if (BC_RAND_NOTMODIFIED(rng))
485 bc_rand_copy(rng2, rng);
489 bc_rand_seedZeroes(r, rng, i);
492 else bc_rand_seedZeroes(r, rng, 1);
499 BcRNGData* rng = bc_vec_top(&r->v);
503 if (BC_ERR(BC_RAND_ZERO(rng))) bc_rand_srand(rng);
508 bc_rand_step(rng);
509 bc_rand_propagate(r, rng);
510 res = bc_rand_output(rng);
539 BcRNGData* rng = bc_vec_top(&r->v);
542 bc_rand_seedState(&rng->inc, inc1, inc2);
543 bc_rand_setupInc(rng);
544 bc_rand_setModified(rng);
551 memcpy(&rng->state, &rng->inc, sizeof(BcRandState));
552 bc_rand_step(rng);
554 else bc_rand_seedState(&rng->state, state1, state2);
557 bc_rand_propagate(r, rng);
588 BcRNGData* rng = bc_vec_top(&r->v);
590 if (BC_ERR(BC_RAND_ZERO(rng))) bc_rand_srand(rng);
593 inc = bc_rand_getInc(rng);
596 *s1 = BC_RAND_TRUNC(rng->state);
597 *s2 = BC_RAND_CHOP(rng->state);
607 BcRNGData* rng = bc_vec_pushEmpty(&r->v);
612 memset(rng, 0, sizeof(BcRNGData));
615 if (r->v.len > 1) bc_rand_copy(rng, bc_vec_item_rev(&r->v, 1));