20 #define RAND48_SEED_0 (0x330e)
21 #define RAND48_SEED_1 (0xabcd)
22 #define RAND48_SEED_2 (0x1234)
23 #define RAND48_MULT_0 (0xe66d)
24 #define RAND48_MULT_1 (0xdeec)
25 #define RAND48_MULT_2 (0x0005)
26 #define RAND48_ADD (0x000b)
50 unsigned short temp[2];
52 accu = (
unsigned long)
__rand48_Mult[0] * (
unsigned long) xseed[0] +
54 temp[0] = (
unsigned short) accu;
55 accu >>=
sizeof(
unsigned short) * 8;
56 accu += (
unsigned long)
__rand48_Mult[0] * (
unsigned long) xseed[1] +
58 temp[1] = (
unsigned short) accu;
59 accu >>=
sizeof(
unsigned short) * 8;
64 xseed[2] = (
unsigned short) accu;
79 extern unsigned short *
82 static unsigned short sseed[3];
101 return ((
long) xseed[2] << 15) + ((long) xseed[1] >> 1);
132 return ((
long) xseed[2] << 16) + (long) xseed[1];
139 return ldexp((
double) xseed[0], -48) +
140 ldexp((
double) xseed[1], -32) +
141 ldexp((
double) xseed[2], -16);
long jrand48(unsigned short xseed[3]) __THROW
long mrand48(void) __THROW
long lrand48(void) __THROW
unsigned short __rand48_Seed[3]
unsigned short __rand48_Mult[3]
unsigned short * seed48(unsigned short xseed[3]) __THROW
double drand48(void) __THROW
unsigned short __rand48_Add
static void _dorand48(unsigned short[3])
long nrand48(unsigned short xseed[3]) __THROW
void lcong48(unsigned short p[7]) __THROW
double erand48(unsigned short xseed[3]) __THROW
void srand48(long seed) __THROW