8 unsigned short __rand48_seed
[3];
10 long jrand48(unsigned short xsubi
[3])
14 /* The xsubi[] array is littleendian by spec */
15 x
= (uint64_t)xsubi
[0] +
16 ((uint64_t)xsubi
[1] << 16) +
17 ((uint64_t)xsubi
[2] << 32);
19 x
= (0x5deece66dULL
* x
) + 0xb;
21 xsubi
[0] = (unsigned short)x
;
22 xsubi
[1] = (unsigned short)(x
>> 16);
23 xsubi
[2] = (unsigned short)(x
>> 32);
25 return (long)(int32_t)(x
>> 16);
30 return jrand48(__rand48_seed
);
33 long nrand48(unsigned short xsubi
[3])
35 return (long)((uint32_t)jrand48(xsubi
) >> 1);
40 return (long)((uint32_t)(mrand48() >> 1));