• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <stdint.h>
2 #include "rand48.h"
3 
__rand48_step(unsigned short * xi,unsigned short * lc)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 }
15