X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fprng%2Frand_r.c;h=638614c867911a133d4a3f054c7150e28d5a4425;hb=648c3b4e18b2ce2b6af7d44783e42ca267ea49f5;hp=ef26dbde6b673e27ebdf65189680559733cb01f0;hpb=0996faa3d789dd69e4c1c022757f0623908b0df5;p=musl diff --git a/src/prng/rand_r.c b/src/prng/rand_r.c index ef26dbde..638614c8 100644 --- a/src/prng/rand_r.c +++ b/src/prng/rand_r.c @@ -1,6 +1,15 @@ #include +static unsigned temper(unsigned x) +{ + x ^= x>>11; + x ^= x<<7 & 0x9D2C5680; + x ^= x<<15 & 0xEFC60000; + x ^= x>>18; + return x; +} + int rand_r(unsigned *seed) { - return (*seed = *seed * 1103515245 + 12345)/2; + return temper(*seed = *seed * 1103515245 + 12345)/2; }