github.com/afumu/libc@v0.0.6/musl/src/prng/rand_r.c (about)

     1  #include <stdlib.h>
     2  
     3  static unsigned temper(unsigned x)
     4  {
     5  	x ^= x>>11;
     6  	x ^= x<<7 & 0x9D2C5680;
     7  	x ^= x<<15 & 0xEFC60000;
     8  	x ^= x>>18;
     9  	return x;
    10  }
    11  
    12  int rand_r(unsigned *seed)
    13  {
    14  	return temper(*seed = *seed * 1103515245 + 12345)/2;
    15  }