48 static const int64_t numlist[] = {
49 INT64_MIN, INT64_MIN+1, INT64_MAX, INT32_MIN, INT32_MAX, 1,0,-1,
50 123456789, INT32_MAX-1, INT32_MAX+1LL, UINT32_MAX-1, UINT32_MAX, UINT32_MAX+1LL
53 for (
a.num = -2;
a.num <= 2;
a.num++) {
54 for (
a.den = -2;
a.den <= 2;
a.den++) {
55 for (
b.num = -2;
b.num <= 2;
b.num++) {
56 for (
b.den = -2;
b.den <= 2;
b.den++) {
61 else if (d < 0) d = -1;
62 else if (d != d) d = INT_MIN;
65 a.den,
b.num,
b.den,
c,d);
69 if(
b.den && (
r.num*
a.den !=
a.num*
r.den || !
r.num != !
a.num || !
r.den != !
a.den)) {
80 {{INT_MAX, 2}, { 2, 1}, { INT_MAX, 1}},
81 {{INT_MAX, 2}, {-2, 1}, {-INT_MAX, 1}},
82 {{INT_MAX, 2}, { 0, 1}, {0, 1}},
83 {{INT_MIN, 2}, { 2, 1}, {-INT_MAX, 1}},
84 {{INT_MIN, 2}, {-2, 1}, { INT_MAX, 1}},
85 {{INT_MIN, 2}, { 0, 1}, {0, 1}},
86 {{INT_MAX >> 8, 1}, {INT_MAX >> 8, 1}, {INT_MAX, 1}},
87 {{1, INT_MAX >> 8}, {1, INT_MAX >> 8}, {0, 1}},
88 {{1, 1}, {0, 0}, {0, 0}},
89 {{0, 1}, {0, 0}, {0, 0}},
93 for (
int c = 0;
c < 2;
c++) {
98 if (
r.num !=
c.num ||
r.den !=
c.den) {
100 a.num,
a.den,
b.num,
b.den,
r.num,
r.den,
c.num,
c.den);
107 {{INT_MAX, 1}, { 2, 2}, { INT_MAX, 1}},
108 {{INT_MAX, 1}, {-2, 2}, { INT_MAX - 1, 1}},
109 {{INT_MAX, 1}, { 0, 2}, { INT_MAX, 1}},
110 {{INT_MIN, 1}, { 2, 2}, {-INT_MAX, 1}},
111 {{INT_MIN, 1}, {-2, 2}, {-INT_MAX, 1}},
112 {{INT_MIN, 1}, { 0, 2}, {-INT_MAX, 1}},
113 {{INT_MAX - 10, 1}, {20, 1}, { INT_MAX, 1}},
114 {{2, INT_MAX}, {2, INT_MAX}, {4, INT_MAX}},
115 {{1, 1}, {0, 0}, {0, 0}},
116 {{0, 1}, {0, 0}, {0, 0}},
120 for (
int c = 0;
c < 2;
c++) {
125 if (
r.num !=
c.num ||
r.den !=
c.den) {
127 a.num,
a.den,
b.num,
b.den,
r.num,
r.den,
c.num,
c.den);
169 for (
a.num = 1;
a.num <= 10;
a.num++) {
170 for (
a.den = 1;
a.den <= 10;
a.den++) {
173 for (
b.num = 1;
b.num <= 10;
b.num++) {
174 for (
b.den = 1;
b.den <= 10;
b.den++) {
180 for (start = 0; start < 10 ; start++) {
184 for (
i = 0;
i<100;
i++) {
187 if (
FFABS(acc - exact) > 2) {
189 a.den,
b.num,
b.den, acc, exact);
199 for (
int64_t den = 1; den <= INT_MAX; den *= 3) {
201 for (
a.num = -1;
a.num < (1<<27);
a.num += 1 +
a.num/100) {
208 {INT_MIN, 1}, {1, INT_MIN}, {INT_MIN, INT_MIN}, {INT_MIN, -1}, {-1, INT_MIN},
209 {INT_MAX, INT_MIN}, {INT_MIN, INT_MAX}, {-3, -7}, {3, -7},
210 {1, 0}, {-1, 0}, {INT_MIN, 0}, {0, 0}, {0, 1}, {0, INT_MIN},