7 static unsigned long long seed
= 47114711;
8 unsigned long long this = seed
* 1103515245 + 12345;
13 unsigned long long int
16 unsigned long long int x
;
25 n_bits
= (ran
>> 1) % 16;
34 x
|= (1 << n_bits
) - 1;
36 if (tot_bits
> 8 * sizeof (long long) + 6)
42 #define ABS(x) ((x) >= 0 ? (x) : -(x))
49 for (i
= 0; i
< 10000; i
++)
51 unsigned long long x
, y
;
52 x
= random_bitstring ();
53 y
= random_bitstring ();
55 if (sizeof (int) == sizeof (long long))
58 { unsigned long long xx
= x
, yy
= y
, r1
, r2
;
59 if (yy
== 0) continue;
62 if (r2
>= yy
|| r1
* yy
+ r2
!= xx
)
65 { signed long long xx
= x
, yy
= y
, r1
, r2
;
66 if ((unsigned long long) xx
<< 1 == 0 && yy
== -1)
70 if (ABS (r2
) >= (unsigned long long) ABS (yy
) || (signed long long) (r1
* yy
+ r2
) != xx
)
74 { unsigned int xx
= x
, yy
= y
, r1
, r2
;
75 if (yy
== 0) continue;
78 if (r2
>= yy
|| r1
* yy
+ r2
!= xx
)
81 { signed int xx
= x
, yy
= y
, r1
, r2
;
82 if ((unsigned int) xx
<< 1 == 0 && yy
== -1)
86 if (ABS (r2
) >= (unsigned int) ABS (yy
) || (signed int) (r1
* yy
+ r2
) != xx
|| ((xx
< 0) != (r2
< 0) && r2
))
89 { unsigned short xx
= x
, yy
= y
, r1
, r2
;
90 if (yy
== 0) continue;
93 if (r2
>= yy
|| r1
* yy
+ r2
!= xx
)
96 { signed short xx
= x
, yy
= y
, r1
, r2
;
99 if (ABS (r2
) >= (unsigned short) ABS (yy
) || (signed short) (r1
* yy
+ r2
) != xx
)
102 { unsigned char xx
= x
, yy
= y
, r1
, r2
;
103 if (yy
== 0) continue;
106 if (r2
>= yy
|| r1
* yy
+ r2
!= xx
)
109 { signed char xx
= x
, yy
= y
, r1
, r2
;
112 if (ABS (r2
) >= (unsigned char) ABS (yy
) || (signed char) (r1
* yy
+ r2
) != xx
)