Реализация numpy.random.normal
здесь здесь :
double random_standard_normal(bitgen_t *bitgen_state);
Мне интересно, как работают эти строки:
/* r = e3n52sb8 */
r = next_uint64(bitgen_state);
idx = r & 0xff;
r >>= 8;
sign = r & 0x1;
rabs = (r >> 1) & 0x000fffffffffffff;
x = rabs * wi_double[idx];
if (sign & 0x1)
x = -x;