Hacker News new | ask | show | jobs
by fanf2 960 days ago
My favourite implementation is

    double random_double(rng_t *rng) {
        return((double)(random_uint64(rng) >> 11) * 0x1.0p-53);
    }
It has the advantage of not needing bit_cast (which C lacks) and has 53 instead of 52 bits of randomness.