blob: 755b4f2f3903e33357684d33d27f8b2e4de3d2ae (
plain) (
tree)
|
|
#include <stdlib.h>
#include <inttypes.h>
uint64_t __rand48_step(unsigned short *xi, unsigned short *lc)
{
uint64_t a, x;
x = xi[0] | xi[1]<<16 | xi[2]+0ULL<<32;
a = lc[0] | lc[1]<<16 | lc[2]+0ULL<<32;
x = a*x + lc[3];
xi[0] = x;
xi[1] = x>>16;
xi[2] = x>>32;
return x & 0xffffffffffffull;
}
|