Home | History | Annotate | Download | only in internal

Lines Matching refs:lg_range

62  * 2**lg_range).  If atomic is true, they do so safely from multiple threads.
67 prng_lg_range_u32(atomic_u32_t *state, unsigned lg_range, bool atomic) {
70 assert(lg_range > 0);
71 assert(lg_range <= 32);
84 ret = state1 >> (32 - lg_range);
90 prng_lg_range_u64(uint64_t *state, unsigned lg_range) {
93 assert(lg_range > 0);
94 assert(lg_range <= 64);
98 ret = state1 >> (64 - lg_range);
104 prng_lg_range_zu(atomic_zu_t *state, unsigned lg_range, bool atomic) {
107 assert(lg_range > 0);
108 assert(lg_range <= ZU(1) << (3 + LG_SIZEOF_PTR));
121 ret = state1 >> ((ZU(1) << (3 + LG_SIZEOF_PTR)) - lg_range);
128 * in [0, range) instead of [0, 2**lg_range).
134 unsigned lg_range;
139 lg_range = ffs_u32(pow2_ceil_u32(range)) - 1;
143 ret = prng_lg_range_u32(state, lg_range, atomic);
152 unsigned lg_range;
157 lg_range = ffs_u64(pow2_ceil_u64(range)) - 1;
161 ret = prng_lg_range_u64(state, lg_range);
170 unsigned lg_range;
175 lg_range = ffs_u64(pow2_ceil_u64(range)) - 1;
179 ret = prng_lg_range_zu(state, lg_range, atomic);