1*c9945492SAndroid Build Coastguard Worker #include <stdint.h> 2*c9945492SAndroid Build Coastguard Worker #include "rand48.h" 3*c9945492SAndroid Build Coastguard Worker __rand48_step(unsigned short * xi,unsigned short * lc)4*c9945492SAndroid Build Coastguard Workeruint64_t __rand48_step(unsigned short *xi, unsigned short *lc) 5*c9945492SAndroid Build Coastguard Worker { 6*c9945492SAndroid Build Coastguard Worker uint64_t a, x; 7*c9945492SAndroid Build Coastguard Worker x = xi[0] | xi[1]+0U<<16 | xi[2]+0ULL<<32; 8*c9945492SAndroid Build Coastguard Worker a = lc[0] | lc[1]+0U<<16 | lc[2]+0ULL<<32; 9*c9945492SAndroid Build Coastguard Worker x = a*x + lc[3]; 10*c9945492SAndroid Build Coastguard Worker xi[0] = x; 11*c9945492SAndroid Build Coastguard Worker xi[1] = x>>16; 12*c9945492SAndroid Build Coastguard Worker xi[2] = x>>32; 13*c9945492SAndroid Build Coastguard Worker return x & 0xffffffffffffull; 14*c9945492SAndroid Build Coastguard Worker } 15