41 #define RAND48_MULT UINT64CONST(0x0005deece66d) 42 #define RAND48_ADD UINT64CONST(0x000b) 45 #define RAND48_SEED_0 (0x330e) 46 #define RAND48_SEED_1 (0xabcd) 47 #define RAND48_SEED_2 (0x1234) 71 in = (uint64) xseed[2] << 32 | (uint64) xseed[1] << 16 | (uint64) xseed[0];
75 xseed[0] = out & 0xFFFF;
76 xseed[1] = (out >> 16) & 0xFFFF;
77 xseed[2] = (out >> 32) & 0xFFFF;
92 return ldexp((
double) (x & UINT64CONST(0xFFFFFFFFFFFF)), -48);
104 return (x >> 17) & UINT64CONST(0x7FFFFFFF);
116 return (
int32) ((x >> 16) & UINT64CONST(0xFFFFFFFF));
static unsigned short _rand48_seed[3]
void pg_srand48(long seed)
static uint64 _dorand48(unsigned short xseed[3])
long pg_jrand48(unsigned short xseed[3])
double pg_erand48(unsigned short xseed[3])