github.com/afumu/libc@v0.0.6/musl/src/prng/__rand48_step.c (about) 1 #include <stdint.h> 2 #include "rand48.h" 3 4 uint64_t __rand48_step(unsigned short *xi, unsigned short *lc) 5 { 6 uint64_t a, x; 7 x = xi[0] | xi[1]+0U<<16 | xi[2]+0ULL<<32; 8 a = lc[0] | lc[1]+0U<<16 | lc[2]+0ULL<<32; 9 x = a*x + lc[3]; 10 xi[0] = x; 11 xi[1] = x>>16; 12 xi[2] = x>>32; 13 return x & 0xffffffffffffull; 14 }