| 58 | } |
| 59 | |
| 60 | double random_standard_exponential(bitgen_t *bitgen_state) { |
| 61 | uint64_t ri; |
| 62 | uint8_t idx; |
| 63 | double x; |
| 64 | ri = next_uint64(bitgen_state); |
| 65 | ri >>= 3; |
| 66 | idx = ri & 0xFF; |
| 67 | ri >>= 8; |
| 68 | x = ri * we_double[idx]; |
| 69 | if (ri < ke_double[idx]) { |
| 70 | return x; /* 98.9% of the time we return here 1st try */ |
| 71 | } |
| 72 | return standard_exponential_unlikely(bitgen_state, idx, x); |
| 73 | } |
| 74 | |
| 75 | void random_standard_exponential_fill(bitgen_t * bitgen_state, npy_intp cnt, double * out) |
| 76 | { |
no test coverage detected