Import Upstream version 20180207
[hcoop/debian/mlton.git] / regression / conv2.sml
CommitLineData
7f918cf1
CE
1val arg: { v: IntInf.int, b: string, oc: string, d: string, x: string} list = [
2 {v = 0, b = "0", oc = "0", d = "0", x = "0"},
3 {v = ~0, b = "~0", oc = "~0", d = "~0", x = "~0"},
4 {v = 1, b = "1", oc = "1", d = "1", x = "1"},
5 {v = ~1, b = "~1", oc = "~1", d = "~1", x = "~1"},
6 {v = 2, b = "10", oc = "2", d = "2", x = "2"},
7 {v = ~2, b = "~10", oc = "~2", d = "~2", x = "~2"},
8 {v = 3, b = "11", oc = "3", d = "3", x = "3"},
9 {v = ~3, b = "~11", oc = "~3", d = "~3", x = "~3"},
10 {v = 4, b = "100", oc = "4", d = "4", x = "4"},
11 {v = ~4, b = "~100", oc = "~4", d = "~4", x = "~4"},
12 {v = 5, b = "101", oc = "5", d = "5", x = "5"},
13 {v = ~5, b = "~101", oc = "~5", d = "~5", x = "~5"},
14 {v = 6, b = "110", oc = "6", d = "6", x = "6"},
15 {v = ~6, b = "~110", oc = "~6", d = "~6", x = "~6"},
16 {v = 7, b = "111", oc = "7", d = "7", x = "7"},
17 {v = ~7, b = "~111", oc = "~7", d = "~7", x = "~7"},
18 {v = 8, b = "1000", oc = "10", d = "8", x = "8"},
19 {v = ~8, b = "~1000", oc = "~10", d = "~8", x = "~8"},
20 {v = 9, b = "1001", oc = "11", d = "9", x = "9"},
21 {v = ~9, b = "~1001", oc = "~11", d = "~9", x = "~9"},
22 {v = 10, b = "1010", oc = "12", d = "10", x = "A"},
23 {v = ~10, b = "~1010", oc = "~12", d = "~10", x = "~A"},
24 {v = 11, b = "1011", oc = "13", d = "11", x = "B"},
25 {v = ~11, b = "~1011", oc = "~13", d = "~11", x = "~B"},
26 {v = 12, b = "1100", oc = "14", d = "12", x = "C"},
27 {v = ~12, b = "~1100", oc = "~14", d = "~12", x = "~C"},
28 {v = 13, b = "1101", oc = "15", d = "13", x = "D"},
29 {v = ~13, b = "~1101", oc = "~15", d = "~13", x = "~D"},
30 {v = 14, b = "1110", oc = "16", d = "14", x = "E"},
31 {v = ~14, b = "~1110", oc = "~16", d = "~14", x = "~E"},
32 {v = 15, b = "1111", oc = "17", d = "15", x = "F"},
33 {v = ~15, b = "~1111", oc = "~17", d = "~15", x = "~F"},
34 {v = 16, b = "10000", oc = "20", d = "16", x = "10"},
35 {v = ~16, b = "~10000", oc = "~20", d = "~16", x = "~10"},
36 {v = 17, b = "10001", oc = "21", d = "17", x = "11"},
37 {v = ~17, b = "~10001", oc = "~21", d = "~17", x = "~11"},
38 {v = 18, b = "10010", oc = "22", d = "18", x = "12"},
39 {v = ~18, b = "~10010", oc = "~22", d = "~18", x = "~12"},
40 {v = 19, b = "10011", oc = "23", d = "19", x = "13"},
41 {v = ~19, b = "~10011", oc = "~23", d = "~19", x = "~13"},
42 {v = 20, b = "10100", oc = "24", d = "20", x = "14"},
43 {v = ~20, b = "~10100", oc = "~24", d = "~20", x = "~14"},
44 {v = 21, b = "10101", oc = "25", d = "21", x = "15"},
45 {v = ~21, b = "~10101", oc = "~25", d = "~21", x = "~15"},
46 {v = 22, b = "10110", oc = "26", d = "22", x = "16"},
47 {v = ~22, b = "~10110", oc = "~26", d = "~22", x = "~16"},
48 {v = 23, b = "10111", oc = "27", d = "23", x = "17"},
49 {v = ~23, b = "~10111", oc = "~27", d = "~23", x = "~17"},
50 {v = 24, b = "11000", oc = "30", d = "24", x = "18"},
51 {v = ~24, b = "~11000", oc = "~30", d = "~24", x = "~18"},
52 {v = 25, b = "11001", oc = "31", d = "25", x = "19"},
53 {v = ~25, b = "~11001", oc = "~31", d = "~25", x = "~19"},
54 {v = 26, b = "11010", oc = "32", d = "26", x = "1A"},
55 {v = ~26, b = "~11010", oc = "~32", d = "~26", x = "~1A"},
56 {v = 27, b = "11011", oc = "33", d = "27", x = "1B"},
57 {v = ~27, b = "~11011", oc = "~33", d = "~27", x = "~1B"},
58 {v = 28, b = "11100", oc = "34", d = "28", x = "1C"},
59 {v = ~28, b = "~11100", oc = "~34", d = "~28", x = "~1C"},
60 {v = 29, b = "11101", oc = "35", d = "29", x = "1D"},
61 {v = ~29, b = "~11101", oc = "~35", d = "~29", x = "~1D"},
62 {v = 30, b = "11110", oc = "36", d = "30", x = "1E"},
63 {v = ~30, b = "~11110", oc = "~36", d = "~30", x = "~1E"},
64 {v = 31, b = "11111", oc = "37", d = "31", x = "1F"},
65 {v = ~31, b = "~11111", oc = "~37", d = "~31", x = "~1F"},
66 {v = 32, b = "100000", oc = "40", d = "32", x = "20"},
67 {v = ~32, b = "~100000", oc = "~40", d = "~32", x = "~20"},
68 {v = 33, b = "100001", oc = "41", d = "33", x = "21"},
69 {v = ~33, b = "~100001", oc = "~41", d = "~33", x = "~21"},
70 {v = 34, b = "100010", oc = "42", d = "34", x = "22"},
71 {v = ~34, b = "~100010", oc = "~42", d = "~34", x = "~22"},
72 {v = 35, b = "100011", oc = "43", d = "35", x = "23"},
73 {v = ~35, b = "~100011", oc = "~43", d = "~35", x = "~23"},
74 {v = 36, b = "100100", oc = "44", d = "36", x = "24"},
75 {v = ~36, b = "~100100", oc = "~44", d = "~36", x = "~24"},
76 {v = 37, b = "100101", oc = "45", d = "37", x = "25"},
77 {v = ~37, b = "~100101", oc = "~45", d = "~37", x = "~25"},
78 {v = 38, b = "100110", oc = "46", d = "38", x = "26"},
79 {v = ~38, b = "~100110", oc = "~46", d = "~38", x = "~26"},
80 {v = 39, b = "100111", oc = "47", d = "39", x = "27"},
81 {v = ~39, b = "~100111", oc = "~47", d = "~39", x = "~27"},
82 {v = 40, b = "101000", oc = "50", d = "40", x = "28"},
83 {v = ~40, b = "~101000", oc = "~50", d = "~40", x = "~28"},
84 {v = 41, b = "101001", oc = "51", d = "41", x = "29"},
85 {v = ~41, b = "~101001", oc = "~51", d = "~41", x = "~29"},
86 {v = 42, b = "101010", oc = "52", d = "42", x = "2A"},
87 {v = ~42, b = "~101010", oc = "~52", d = "~42", x = "~2A"},
88 {v = 43, b = "101011", oc = "53", d = "43", x = "2B"},
89 {v = ~43, b = "~101011", oc = "~53", d = "~43", x = "~2B"},
90 {v = 44, b = "101100", oc = "54", d = "44", x = "2C"},
91 {v = ~44, b = "~101100", oc = "~54", d = "~44", x = "~2C"},
92 {v = 45, b = "101101", oc = "55", d = "45", x = "2D"},
93 {v = ~45, b = "~101101", oc = "~55", d = "~45", x = "~2D"},
94 {v = 46, b = "101110", oc = "56", d = "46", x = "2E"},
95 {v = ~46, b = "~101110", oc = "~56", d = "~46", x = "~2E"},
96 {v = 47, b = "101111", oc = "57", d = "47", x = "2F"},
97 {v = ~47, b = "~101111", oc = "~57", d = "~47", x = "~2F"},
98 {v = 48, b = "110000", oc = "60", d = "48", x = "30"},
99 {v = ~48, b = "~110000", oc = "~60", d = "~48", x = "~30"},
100 {v = 49, b = "110001", oc = "61", d = "49", x = "31"},
101 {v = ~49, b = "~110001", oc = "~61", d = "~49", x = "~31"},
102 {v = 50, b = "110010", oc = "62", d = "50", x = "32"},
103 {v = ~50, b = "~110010", oc = "~62", d = "~50", x = "~32"},
104 {v = 51, b = "110011", oc = "63", d = "51", x = "33"},
105 {v = ~51, b = "~110011", oc = "~63", d = "~51", x = "~33"},
106 {v = 52, b = "110100", oc = "64", d = "52", x = "34"},
107 {v = ~52, b = "~110100", oc = "~64", d = "~52", x = "~34"},
108 {v = 53, b = "110101", oc = "65", d = "53", x = "35"},
109 {v = ~53, b = "~110101", oc = "~65", d = "~53", x = "~35"},
110 {v = 54, b = "110110", oc = "66", d = "54", x = "36"},
111 {v = ~54, b = "~110110", oc = "~66", d = "~54", x = "~36"},
112 {v = 55, b = "110111", oc = "67", d = "55", x = "37"},
113 {v = ~55, b = "~110111", oc = "~67", d = "~55", x = "~37"},
114 {v = 56, b = "111000", oc = "70", d = "56", x = "38"},
115 {v = ~56, b = "~111000", oc = "~70", d = "~56", x = "~38"},
116 {v = 57, b = "111001", oc = "71", d = "57", x = "39"},
117 {v = ~57, b = "~111001", oc = "~71", d = "~57", x = "~39"},
118 {v = 58, b = "111010", oc = "72", d = "58", x = "3A"},
119 {v = ~58, b = "~111010", oc = "~72", d = "~58", x = "~3A"},
120 {v = 59, b = "111011", oc = "73", d = "59", x = "3B"},
121 {v = ~59, b = "~111011", oc = "~73", d = "~59", x = "~3B"},
122 {v = 60, b = "111100", oc = "74", d = "60", x = "3C"},
123 {v = ~60, b = "~111100", oc = "~74", d = "~60", x = "~3C"},
124 {v = 61, b = "111101", oc = "75", d = "61", x = "3D"},
125 {v = ~61, b = "~111101", oc = "~75", d = "~61", x = "~3D"},
126 {v = 62, b = "111110", oc = "76", d = "62", x = "3E"},
127 {v = ~62, b = "~111110", oc = "~76", d = "~62", x = "~3E"},
128 {v = 63, b = "111111", oc = "77", d = "63", x = "3F"},
129 {v = ~63, b = "~111111", oc = "~77", d = "~63", x = "~3F"},
130 {v = 64, b = "1000000", oc = "100", d = "64", x = "40"},
131 {v = ~64, b = "~1000000", oc = "~100", d = "~64", x = "~40"},
132 {v = 65, b = "1000001", oc = "101", d = "65", x = "41"},
133 {v = ~65, b = "~1000001", oc = "~101", d = "~65", x = "~41"},
134 {v = 66, b = "1000010", oc = "102", d = "66", x = "42"},
135 {v = ~66, b = "~1000010", oc = "~102", d = "~66", x = "~42"},
136 {v = 67, b = "1000011", oc = "103", d = "67", x = "43"},
137 {v = ~67, b = "~1000011", oc = "~103", d = "~67", x = "~43"},
138 {v = 68, b = "1000100", oc = "104", d = "68", x = "44"},
139 {v = ~68, b = "~1000100", oc = "~104", d = "~68", x = "~44"},
140 {v = 69, b = "1000101", oc = "105", d = "69", x = "45"},
141 {v = ~69, b = "~1000101", oc = "~105", d = "~69", x = "~45"},
142 {v = 70, b = "1000110", oc = "106", d = "70", x = "46"},
143 {v = ~70, b = "~1000110", oc = "~106", d = "~70", x = "~46"},
144 {v = 71, b = "1000111", oc = "107", d = "71", x = "47"},
145 {v = ~71, b = "~1000111", oc = "~107", d = "~71", x = "~47"},
146 {v = 72, b = "1001000", oc = "110", d = "72", x = "48"},
147 {v = ~72, b = "~1001000", oc = "~110", d = "~72", x = "~48"},
148 {v = 73, b = "1001001", oc = "111", d = "73", x = "49"},
149 {v = ~73, b = "~1001001", oc = "~111", d = "~73", x = "~49"},
150 {v = 74, b = "1001010", oc = "112", d = "74", x = "4A"},
151 {v = ~74, b = "~1001010", oc = "~112", d = "~74", x = "~4A"},
152 {v = 75, b = "1001011", oc = "113", d = "75", x = "4B"},
153 {v = ~75, b = "~1001011", oc = "~113", d = "~75", x = "~4B"},
154 {v = 76, b = "1001100", oc = "114", d = "76", x = "4C"},
155 {v = ~76, b = "~1001100", oc = "~114", d = "~76", x = "~4C"},
156 {v = 77, b = "1001101", oc = "115", d = "77", x = "4D"},
157 {v = ~77, b = "~1001101", oc = "~115", d = "~77", x = "~4D"},
158 {v = 78, b = "1001110", oc = "116", d = "78", x = "4E"},
159 {v = ~78, b = "~1001110", oc = "~116", d = "~78", x = "~4E"},
160 {v = 79, b = "1001111", oc = "117", d = "79", x = "4F"},
161 {v = ~79, b = "~1001111", oc = "~117", d = "~79", x = "~4F"},
162 {v = 80, b = "1010000", oc = "120", d = "80", x = "50"},
163 {v = ~80, b = "~1010000", oc = "~120", d = "~80", x = "~50"},
164 {v = 81, b = "1010001", oc = "121", d = "81", x = "51"},
165 {v = ~81, b = "~1010001", oc = "~121", d = "~81", x = "~51"},
166 {v = 82, b = "1010010", oc = "122", d = "82", x = "52"},
167 {v = ~82, b = "~1010010", oc = "~122", d = "~82", x = "~52"},
168 {v = 83, b = "1010011", oc = "123", d = "83", x = "53"},
169 {v = ~83, b = "~1010011", oc = "~123", d = "~83", x = "~53"},
170 {v = 84, b = "1010100", oc = "124", d = "84", x = "54"},
171 {v = ~84, b = "~1010100", oc = "~124", d = "~84", x = "~54"},
172 {v = 85, b = "1010101", oc = "125", d = "85", x = "55"},
173 {v = ~85, b = "~1010101", oc = "~125", d = "~85", x = "~55"},
174 {v = 86, b = "1010110", oc = "126", d = "86", x = "56"},
175 {v = ~86, b = "~1010110", oc = "~126", d = "~86", x = "~56"},
176 {v = 87, b = "1010111", oc = "127", d = "87", x = "57"},
177 {v = ~87, b = "~1010111", oc = "~127", d = "~87", x = "~57"},
178 {v = 88, b = "1011000", oc = "130", d = "88", x = "58"},
179 {v = ~88, b = "~1011000", oc = "~130", d = "~88", x = "~58"},
180 {v = 89, b = "1011001", oc = "131", d = "89", x = "59"},
181 {v = ~89, b = "~1011001", oc = "~131", d = "~89", x = "~59"},
182 {v = 90, b = "1011010", oc = "132", d = "90", x = "5A"},
183 {v = ~90, b = "~1011010", oc = "~132", d = "~90", x = "~5A"},
184 {v = 91, b = "1011011", oc = "133", d = "91", x = "5B"},
185 {v = ~91, b = "~1011011", oc = "~133", d = "~91", x = "~5B"},
186 {v = 92, b = "1011100", oc = "134", d = "92", x = "5C"},
187 {v = ~92, b = "~1011100", oc = "~134", d = "~92", x = "~5C"},
188 {v = 93, b = "1011101", oc = "135", d = "93", x = "5D"},
189 {v = ~93, b = "~1011101", oc = "~135", d = "~93", x = "~5D"},
190 {v = 94, b = "1011110", oc = "136", d = "94", x = "5E"},
191 {v = ~94, b = "~1011110", oc = "~136", d = "~94", x = "~5E"},
192 {v = 95, b = "1011111", oc = "137", d = "95", x = "5F"},
193 {v = ~95, b = "~1011111", oc = "~137", d = "~95", x = "~5F"},
194 {v = 96, b = "1100000", oc = "140", d = "96", x = "60"},
195 {v = ~96, b = "~1100000", oc = "~140", d = "~96", x = "~60"},
196 {v = 97, b = "1100001", oc = "141", d = "97", x = "61"},
197 {v = ~97, b = "~1100001", oc = "~141", d = "~97", x = "~61"},
198 {v = 98, b = "1100010", oc = "142", d = "98", x = "62"},
199 {v = ~98, b = "~1100010", oc = "~142", d = "~98", x = "~62"},
200 {v = 99, b = "1100011", oc = "143", d = "99", x = "63"},
201 {v = ~99, b = "~1100011", oc = "~143", d = "~99", x = "~63"},
202 {v = 128, b = "10000000", oc = "200", d = "128", x = "80"},
203 {v = ~128, b = "~10000000", oc = "~200", d = "~128", x = "~80"},
204 {v = 256, b = "100000000", oc = "400", d = "256", x = "100"},
205 {v = ~256, b = "~100000000", oc = "~400", d = "~256", x = "~100"},
206 {v = 512, b = "1000000000", oc = "1000", d = "512", x = "200"},
207 {v = ~512, b = "~1000000000", oc = "~1000", d = "~512", x = "~200"},
208 {v = 1024, b = "10000000000", oc = "2000", d = "1024", x = "400"},
209 {v = ~1024, b = "~10000000000", oc = "~2000", d = "~1024", x = "~400"},
210 {v = 2048, b = "100000000000", oc = "4000", d = "2048", x = "800"},
211 {v = ~2048, b = "~100000000000", oc = "~4000", d = "~2048", x = "~800"},
212 {v = 4096, b = "1000000000000", oc = "10000", d = "4096", x = "1000"},
213 {v = ~4096, b = "~1000000000000", oc = "~10000", d = "~4096", x = "~1000"},
214 {v = 8192, b = "10000000000000", oc = "20000", d = "8192", x = "2000"},
215 {v = ~8192, b = "~10000000000000", oc = "~20000", d = "~8192", x = "~2000"},
216 {v = 16384, b = "100000000000000", oc = "40000", d = "16384", x = "4000"},
217 {v = ~16384, b = "~100000000000000", oc = "~40000", d = "~16384", x = "~4000"},
218 {v = 32768, b = "1000000000000000", oc = "100000", d = "32768", x = "8000"},
219 {v = ~32768, b = "~1000000000000000", oc = "~100000", d = "~32768", x = "~8000"},
220 {v = 65536, b = "10000000000000000", oc = "200000", d = "65536", x = "10000"},
221 {v = ~65536, b = "~10000000000000000", oc = "~200000", d = "~65536", x = "~10000"},
222 {v = 131072, b = "100000000000000000", oc = "400000", d = "131072", x = "20000"},
223 {v = ~131072, b = "~100000000000000000", oc = "~400000", d = "~131072", x = "~20000"},
224 {v = 262144, b = "1000000000000000000", oc = "1000000", d = "262144", x = "40000"},
225 {v = ~262144, b = "~1000000000000000000", oc = "~1000000", d = "~262144", x = "~40000"},
226 {v = 524288, b = "10000000000000000000", oc = "2000000", d = "524288", x = "80000"},
227 {v = ~524288, b = "~10000000000000000000", oc = "~2000000", d = "~524288", x = "~80000"},
228 {v = 1048576, b = "100000000000000000000", oc = "4000000", d = "1048576", x = "100000"},
229 {v = ~1048576, b = "~100000000000000000000", oc = "~4000000", d = "~1048576", x = "~100000"},
230 {v = 2097152, b = "1000000000000000000000", oc = "10000000", d = "2097152", x = "200000"},
231 {v = ~2097152, b = "~1000000000000000000000", oc = "~10000000", d = "~2097152", x = "~200000"},
232 {v = 4194304, b = "10000000000000000000000", oc = "20000000", d = "4194304", x = "400000"},
233 {v = ~4194304, b = "~10000000000000000000000", oc = "~20000000", d = "~4194304", x = "~400000"},
234 {v = 8388608, b = "100000000000000000000000", oc = "40000000", d = "8388608", x = "800000"},
235 {v = ~8388608, b = "~100000000000000000000000", oc = "~40000000", d = "~8388608", x = "~800000"},
236 {v = 16777216, b = "1000000000000000000000000", oc = "100000000", d = "16777216", x = "1000000"},
237 {v = ~16777216, b = "~1000000000000000000000000", oc = "~100000000", d = "~16777216", x = "~1000000"},
238 {v = 33554432, b = "10000000000000000000000000", oc = "200000000", d = "33554432", x = "2000000"},
239 {v = ~33554432, b = "~10000000000000000000000000", oc = "~200000000", d = "~33554432", x = "~2000000"},
240 {v = 67108864, b = "100000000000000000000000000", oc = "400000000", d = "67108864", x = "4000000"},
241 {v = ~67108864, b = "~100000000000000000000000000", oc = "~400000000", d = "~67108864", x = "~4000000"},
242 {v = 100000000, b = "101111101011110000100000000", oc = "575360400", d = "100000000", x = "5F5E100"},
243 {v = ~100000000, b = "~101111101011110000100000000", oc = "~575360400", d = "~100000000", x = "~5F5E100"},
244 {v = 134217728, b = "1000000000000000000000000000", oc = "1000000000", d = "134217728", x = "8000000"},
245 {v = ~134217728, b = "~1000000000000000000000000000", oc = "~1000000000", d = "~134217728", x = "~8000000"},
246 {v = 268435456, b = "10000000000000000000000000000", oc = "2000000000", d = "268435456", x = "10000000"},
247 {v = ~268435456, b = "~10000000000000000000000000000", oc = "~2000000000", d = "~268435456", x = "~10000000"},
248 {v = 536870912, b = "100000000000000000000000000000", oc = "4000000000", d = "536870912", x = "20000000"},
249 {v = ~536870912, b = "~100000000000000000000000000000", oc = "~4000000000", d = "~536870912", x = "~20000000"},
250 {v = 1073741822, b = "111111111111111111111111111110", oc = "7777777776", d = "1073741822", x = "3FFFFFFE"},
251 {v = ~1073741822, b = "~111111111111111111111111111110", oc = "~7777777776", d = "~1073741822", x = "~3FFFFFFE"},
252 {v = 1073741823, b = "111111111111111111111111111111", oc = "7777777777", d = "1073741823", x = "3FFFFFFF"},
253 {v = ~1073741823, b = "~111111111111111111111111111111", oc = "~7777777777", d = "~1073741823", x = "~3FFFFFFF"},
254 {v = 1073741824, b = "1000000000000000000000000000000", oc = "10000000000", d = "1073741824", x = "40000000"},
255 {v = ~1073741824, b = "~1000000000000000000000000000000", oc = "~10000000000", d = "~1073741824", x = "~40000000"},
256 {v = 1073741825, b = "1000000000000000000000000000001", oc = "10000000001", d = "1073741825", x = "40000001"},
257 {v = ~1073741825, b = "~1000000000000000000000000000001", oc = "~10000000001", d = "~1073741825", x = "~40000001"},
258 {v = 1073741826, b = "1000000000000000000000000000010", oc = "10000000002", d = "1073741826", x = "40000002"},
259 {v = ~1073741826, b = "~1000000000000000000000000000010", oc = "~10000000002", d = "~1073741826", x = "~40000002"},
260 {v = 2147483648, b = "10000000000000000000000000000000", oc = "20000000000", d = "2147483648", x = "80000000"},
261 {v = ~2147483648, b = "~10000000000000000000000000000000", oc = "~20000000000", d = "~2147483648", x = "~80000000"},
262 {v = 4294967296, b = "100000000000000000000000000000000", oc = "40000000000", d = "4294967296", x = "100000000"},
263 {v = ~4294967296, b = "~100000000000000000000000000000000", oc = "~40000000000", d = "~4294967296", x = "~100000000"},
264 {v = 4304967296, b = "100000000100110001001011010000000", oc = "40046113200", d = "4304967296", x = "100989680"},
265 {v = ~4304967296, b = "~100000000100110001001011010000000", oc = "~40046113200", d = "~4304967296", x = "~100989680"},
266 {v = 8589934592, b = "1000000000000000000000000000000000", oc = "100000000000", d = "8589934592", x = "200000000"},
267 {v = ~8589934592, b = "~1000000000000000000000000000000000", oc = "~100000000000", d = "~8589934592", x = "~200000000"},
268 {v = 17179869184, b = "10000000000000000000000000000000000", oc = "200000000000", d = "17179869184", x = "400000000"},
269 {v = ~17179869184, b = "~10000000000000000000000000000000000", oc = "~200000000000", d = "~17179869184", x = "~400000000"},
270 {v = 34359738368, b = "100000000000000000000000000000000000", oc = "400000000000", d = "34359738368", x = "800000000"},
271 {v = ~34359738368, b = "~100000000000000000000000000000000000", oc = "~400000000000", d = "~34359738368", x = "~800000000"},
272 {v = 68719476736, b = "1000000000000000000000000000000000000", oc = "1000000000000", d = "68719476736", x = "1000000000"},
273 {v = ~68719476736, b = "~1000000000000000000000000000000000000", oc = "~1000000000000", d = "~68719476736", x = "~1000000000"},
274 {v = 137438953472, b = "10000000000000000000000000000000000000", oc = "2000000000000", d = "137438953472", x = "2000000000"},
275 {v = ~137438953472, b = "~10000000000000000000000000000000000000", oc = "~2000000000000", d = "~137438953472", x = "~2000000000"},
276 {v = 274877906944, b = "100000000000000000000000000000000000000", oc = "4000000000000", d = "274877906944", x = "4000000000"},
277 {v = ~274877906944, b = "~100000000000000000000000000000000000000", oc = "~4000000000000", d = "~274877906944", x = "~4000000000"},
278 {v = 549755813888, b = "1000000000000000000000000000000000000000", oc = "10000000000000", d = "549755813888", x = "8000000000"},
279 {v = ~549755813888, b = "~1000000000000000000000000000000000000000", oc = "~10000000000000", d = "~549755813888", x = "~8000000000"},
280 {v = 1099511627776, b = "10000000000000000000000000000000000000000", oc = "20000000000000", d = "1099511627776", x = "10000000000"},
281 {v = ~1099511627776, b = "~10000000000000000000000000000000000000000", oc = "~20000000000000", d = "~1099511627776", x = "~10000000000"},
282 {v = 2199023255552, b = "100000000000000000000000000000000000000000", oc = "40000000000000", d = "2199023255552", x = "20000000000"},
283 {v = ~2199023255552, b = "~100000000000000000000000000000000000000000", oc = "~40000000000000", d = "~2199023255552", x = "~20000000000"},
284 {v = 4398046511104, b = "1000000000000000000000000000000000000000000", oc = "100000000000000", d = "4398046511104", x = "40000000000"},
285 {v = ~4398046511104, b = "~1000000000000000000000000000000000000000000", oc = "~100000000000000", d = "~4398046511104", x = "~40000000000"},
286 {v = 8796093022208, b = "10000000000000000000000000000000000000000000", oc = "200000000000000", d = "8796093022208", x = "80000000000"},
287 {v = ~8796093022208, b = "~10000000000000000000000000000000000000000000", oc = "~200000000000000", d = "~8796093022208", x = "~80000000000"},
288 {v = 17592186044416, b = "100000000000000000000000000000000000000000000", oc = "400000000000000", d = "17592186044416", x = "100000000000"},
289 {v = ~17592186044416, b = "~100000000000000000000000000000000000000000000", oc = "~400000000000000", d = "~17592186044416", x = "~100000000000"},
290 {v = 35184372088832, b = "1000000000000000000000000000000000000000000000", oc = "1000000000000000", d = "35184372088832", x = "200000000000"},
291 {v = ~35184372088832, b = "~1000000000000000000000000000000000000000000000", oc = "~1000000000000000", d = "~35184372088832", x = "~200000000000"},
292 {v = 70368744177664, b = "10000000000000000000000000000000000000000000000", oc = "2000000000000000", d = "70368744177664", x = "400000000000"},
293 {v = ~70368744177664, b = "~10000000000000000000000000000000000000000000000", oc = "~2000000000000000", d = "~70368744177664", x = "~400000000000"},
294 {v = 140737488355328, b = "100000000000000000000000000000000000000000000000", oc = "4000000000000000", d = "140737488355328", x = "800000000000"},
295 {v = ~140737488355328, b = "~100000000000000000000000000000000000000000000000", oc = "~4000000000000000", d = "~140737488355328", x = "~800000000000"},
296 {v = 281474976710656, b = "1000000000000000000000000000000000000000000000000", oc = "10000000000000000", d = "281474976710656", x = "1000000000000"},
297 {v = ~281474976710656, b = "~1000000000000000000000000000000000000000000000000", oc = "~10000000000000000", d = "~281474976710656", x = "~1000000000000"},
298 {v = 562949953421312, b = "10000000000000000000000000000000000000000000000000", oc = "20000000000000000", d = "562949953421312", x = "2000000000000"},
299 {v = ~562949953421312, b = "~10000000000000000000000000000000000000000000000000", oc = "~20000000000000000", d = "~562949953421312", x = "~2000000000000"},
300 {v = 1125899906842624, b = "100000000000000000000000000000000000000000000000000", oc = "40000000000000000", d = "1125899906842624", x = "4000000000000"},
301 {v = ~1125899906842624, b = "~100000000000000000000000000000000000000000000000000", oc = "~40000000000000000", d = "~1125899906842624", x = "~4000000000000"},
302 {v = 2251799813685248, b = "1000000000000000000000000000000000000000000000000000", oc = "100000000000000000", d = "2251799813685248", x = "8000000000000"},
303 {v = ~2251799813685248, b = "~1000000000000000000000000000000000000000000000000000", oc = "~100000000000000000", d = "~2251799813685248", x = "~8000000000000"},
304 {v = 4503599627370496, b = "10000000000000000000000000000000000000000000000000000", oc = "200000000000000000", d = "4503599627370496", x = "10000000000000"},
305 {v = ~4503599627370496, b = "~10000000000000000000000000000000000000000000000000000", oc = "~200000000000000000", d = "~4503599627370496", x = "~10000000000000"},
306 {v = 9007199254740992, b = "100000000000000000000000000000000000000000000000000000", oc = "400000000000000000", d = "9007199254740992", x = "20000000000000"},
307 {v = ~9007199254740992, b = "~100000000000000000000000000000000000000000000000000000", oc = "~400000000000000000", d = "~9007199254740992", x = "~20000000000000"},
308 {v = 18014398509481984, b = "1000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000", d = "18014398509481984", x = "40000000000000"},
309 {v = ~18014398509481984, b = "~1000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000", d = "~18014398509481984", x = "~40000000000000"},
310 {v = 36028797018963968, b = "10000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000", d = "36028797018963968", x = "80000000000000"},
311 {v = ~36028797018963968, b = "~10000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000", d = "~36028797018963968", x = "~80000000000000"},
312 {v = 72057594037927936, b = "100000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000", d = "72057594037927936", x = "100000000000000"},
313 {v = ~72057594037927936, b = "~100000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000", d = "~72057594037927936", x = "~100000000000000"},
314 {v = 144115188075855872, b = "1000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000", d = "144115188075855872", x = "200000000000000"},
315 {v = ~144115188075855872, b = "~1000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000", d = "~144115188075855872", x = "~200000000000000"},
316 {v = 288230376151711744, b = "10000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000", d = "288230376151711744", x = "400000000000000"},
317 {v = ~288230376151711744, b = "~10000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000", d = "~288230376151711744", x = "~400000000000000"},
318 {v = 576460752303423488, b = "100000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000", d = "576460752303423488", x = "800000000000000"},
319 {v = ~576460752303423488, b = "~100000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000", d = "~576460752303423488", x = "~800000000000000"},
320 {v = 1152921504606846976, b = "1000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000", d = "1152921504606846976", x = "1000000000000000"},
321 {v = ~1152921504606846976, b = "~1000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000", d = "~1152921504606846976", x = "~1000000000000000"},
322 {v = 2305843009213693952, b = "10000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000", d = "2305843009213693952", x = "2000000000000000"},
323 {v = ~2305843009213693952, b = "~10000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000", d = "~2305843009213693952", x = "~2000000000000000"},
324 {v = 4611686018427387904, b = "100000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000", d = "4611686018427387904", x = "4000000000000000"},
325 {v = ~4611686018427387904, b = "~100000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000", d = "~4611686018427387904", x = "~4000000000000000"},
326 {v = 9223372036854775808, b = "1000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000", d = "9223372036854775808", x = "8000000000000000"},
327 {v = ~9223372036854775808, b = "~1000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000", d = "~9223372036854775808", x = "~8000000000000000"},
328 {v = 18446744073709551616, b = "10000000000000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000000", d = "18446744073709551616", x = "10000000000000000"},
329 {v = ~18446744073709551616, b = "~10000000000000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000000", d = "~18446744073709551616", x = "~10000000000000000"},
330 {v = 36893488147419103232, b = "100000000000000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000000", d = "36893488147419103232", x = "20000000000000000"},
331 {v = ~36893488147419103232, b = "~100000000000000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000000", d = "~36893488147419103232", x = "~20000000000000000"},
332 {v = 73786976294838206464, b = "1000000000000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000000", d = "73786976294838206464", x = "40000000000000000"},
333 {v = ~73786976294838206464, b = "~1000000000000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000000", d = "~73786976294838206464", x = "~40000000000000000"},
334 {v = 147573952589676412928, b = "10000000000000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000000", d = "147573952589676412928", x = "80000000000000000"},
335 {v = ~147573952589676412928, b = "~10000000000000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000000", d = "~147573952589676412928", x = "~80000000000000000"},
336 {v = 295147905179352825856, b = "100000000000000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000000", d = "295147905179352825856", x = "100000000000000000"},
337 {v = ~295147905179352825856, b = "~100000000000000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000000", d = "~295147905179352825856", x = "~100000000000000000"},
338 {v = 590295810358705651712, b = "1000000000000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000000", d = "590295810358705651712", x = "200000000000000000"},
339 {v = ~590295810358705651712, b = "~1000000000000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000000", d = "~590295810358705651712", x = "~200000000000000000"},
340 {v = 1180591620717411303424, b = "10000000000000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000000", d = "1180591620717411303424", x = "400000000000000000"},
341 {v = ~1180591620717411303424, b = "~10000000000000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000000", d = "~1180591620717411303424", x = "~400000000000000000"},
342 {v = 2361183241434822606848, b = "100000000000000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000000", d = "2361183241434822606848", x = "800000000000000000"},
343 {v = ~2361183241434822606848, b = "~100000000000000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000000", d = "~2361183241434822606848", x = "~800000000000000000"},
344 {v = 4722366482869645213696, b = "1000000000000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000000", d = "4722366482869645213696", x = "1000000000000000000"},
345 {v = ~4722366482869645213696, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000000", d = "~4722366482869645213696", x = "~1000000000000000000"},
346 {v = 9444732965739290427392, b = "10000000000000000000000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000000000", d = "9444732965739290427392", x = "2000000000000000000"},
347 {v = ~9444732965739290427392, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000000000", d = "~9444732965739290427392", x = "~2000000000000000000"},
348 {v = 18889465931478580854784, b = "100000000000000000000000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000000000", d = "18889465931478580854784", x = "4000000000000000000"},
349 {v = ~18889465931478580854784, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000000000", d = "~18889465931478580854784", x = "~4000000000000000000"},
350 {v = 37778931862957161709568, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000000000", d = "37778931862957161709568", x = "8000000000000000000"},
351 {v = ~37778931862957161709568, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000000000", d = "~37778931862957161709568", x = "~8000000000000000000"},
352 {v = 75557863725914323419136, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000000000", d = "75557863725914323419136", x = "10000000000000000000"},
353 {v = ~75557863725914323419136, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000000000", d = "~75557863725914323419136", x = "~10000000000000000000"},
354 {v = 151115727451828646838272, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000000000", d = "151115727451828646838272", x = "20000000000000000000"},
355 {v = ~151115727451828646838272, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000000000", d = "~151115727451828646838272", x = "~20000000000000000000"},
356 {v = 302231454903657293676544, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000000000", d = "302231454903657293676544", x = "40000000000000000000"},
357 {v = ~302231454903657293676544, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000000000", d = "~302231454903657293676544", x = "~40000000000000000000"},
358 {v = 604462909807314587353088, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000000000", d = "604462909807314587353088", x = "80000000000000000000"},
359 {v = ~604462909807314587353088, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000000000", d = "~604462909807314587353088", x = "~80000000000000000000"},
360 {v = 1208925819614629174706176, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000000000", d = "1208925819614629174706176", x = "100000000000000000000"},
361 {v = ~1208925819614629174706176, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000000000", d = "~1208925819614629174706176", x = "~100000000000000000000"},
362 {v = 2417851639229258349412352, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000000000", d = "2417851639229258349412352", x = "200000000000000000000"},
363 {v = ~2417851639229258349412352, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000000000", d = "~2417851639229258349412352", x = "~200000000000000000000"},
364 {v = 4835703278458516698824704, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000000000000", d = "4835703278458516698824704", x = "400000000000000000000"},
365 {v = ~4835703278458516698824704, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000000000000", d = "~4835703278458516698824704", x = "~400000000000000000000"},
366 {v = 9671406556917033397649408, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000000000000", d = "9671406556917033397649408", x = "800000000000000000000"},
367 {v = ~9671406556917033397649408, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000000000000", d = "~9671406556917033397649408", x = "~800000000000000000000"},
368 {v = 19342813113834066795298816, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000000000000", d = "19342813113834066795298816", x = "1000000000000000000000"},
369 {v = ~19342813113834066795298816, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000000000000", d = "~19342813113834066795298816", x = "~1000000000000000000000"},
370 {v = 38685626227668133590597632, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000000000000", d = "38685626227668133590597632", x = "2000000000000000000000"},
371 {v = ~38685626227668133590597632, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000000000000", d = "~38685626227668133590597632", x = "~2000000000000000000000"},
372 {v = 77371252455336267181195264, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000000000000", d = "77371252455336267181195264", x = "4000000000000000000000"},
373 {v = ~77371252455336267181195264, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000000000000", d = "~77371252455336267181195264", x = "~4000000000000000000000"},
374 {v = 154742504910672534362390528, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000000000000", d = "154742504910672534362390528", x = "8000000000000000000000"},
375 {v = ~154742504910672534362390528, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000000000000", d = "~154742504910672534362390528", x = "~8000000000000000000000"},
376 {v = 309485009821345068724781056, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000000000000", d = "309485009821345068724781056", x = "10000000000000000000000"},
377 {v = ~309485009821345068724781056, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000000000000", d = "~309485009821345068724781056", x = "~10000000000000000000000"},
378 {v = 618970019642690137449562112, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000000000000", d = "618970019642690137449562112", x = "20000000000000000000000"},
379 {v = ~618970019642690137449562112, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000000000000", d = "~618970019642690137449562112", x = "~20000000000000000000000"},
380 {v = 1237940039285380274899124224, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000000000000", d = "1237940039285380274899124224", x = "40000000000000000000000"},
381 {v = ~1237940039285380274899124224, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000000000000", d = "~1237940039285380274899124224", x = "~40000000000000000000000"},
382 {v = 2475880078570760549798248448, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "2000000000000000000000000000000", d = "2475880078570760549798248448", x = "80000000000000000000000"},
383 {v = ~2475880078570760549798248448, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~2000000000000000000000000000000", d = "~2475880078570760549798248448", x = "~80000000000000000000000"},
384 {v = 4951760157141521099596496896, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "4000000000000000000000000000000", d = "4951760157141521099596496896", x = "100000000000000000000000"},
385 {v = ~4951760157141521099596496896, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~4000000000000000000000000000000", d = "~4951760157141521099596496896", x = "~100000000000000000000000"},
386 {v = 9903520314283042199192993792, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "10000000000000000000000000000000", d = "9903520314283042199192993792", x = "200000000000000000000000"},
387 {v = ~9903520314283042199192993792, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~10000000000000000000000000000000", d = "~9903520314283042199192993792", x = "~200000000000000000000000"},
388 {v = 19807040628566084398385987584, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "20000000000000000000000000000000", d = "19807040628566084398385987584", x = "400000000000000000000000"},
389 {v = ~19807040628566084398385987584, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~20000000000000000000000000000000", d = "~19807040628566084398385987584", x = "~400000000000000000000000"},
390 {v = 39614081257132168796771975168, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "40000000000000000000000000000000", d = "39614081257132168796771975168", x = "800000000000000000000000"},
391 {v = ~39614081257132168796771975168, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~40000000000000000000000000000000", d = "~39614081257132168796771975168", x = "~800000000000000000000000"},
392 {v = 79228162514264337593543950336, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "100000000000000000000000000000000", d = "79228162514264337593543950336", x = "1000000000000000000000000"},
393 {v = ~79228162514264337593543950336, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~100000000000000000000000000000000", d = "~79228162514264337593543950336", x = "~1000000000000000000000000"},
394 {v = 158456325028528675187087900672, b = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "200000000000000000000000000000000", d = "158456325028528675187087900672", x = "2000000000000000000000000"},
395 {v = ~158456325028528675187087900672, b = "~10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~200000000000000000000000000000000", d = "~158456325028528675187087900672", x = "~2000000000000000000000000"},
396 {v = 316912650057057350374175801344, b = "100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "400000000000000000000000000000000", d = "316912650057057350374175801344", x = "4000000000000000000000000"},
397 {v = ~316912650057057350374175801344, b = "~100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~400000000000000000000000000000000", d = "~316912650057057350374175801344", x = "~4000000000000000000000000"},
398 {v = 633825300114114700748351602688, b = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "1000000000000000000000000000000000", d = "633825300114114700748351602688", x = "8000000000000000000000000"},
399 {v = ~633825300114114700748351602688, b = "~1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", oc = "~1000000000000000000000000000000000", d = "~633825300114114700748351602688", x = "~8000000000000000000000000"}
400]
401
402fun makeReader str =
403 let val len = String.size str
404 fun reader pos =
405 if pos = String.size str
406 then NONE
407 else SOME (String.sub (str, pos), pos + 1)
408 in reader
409 end
410
411exception FailRead of StringCvt.radix * string
412exception FailWrite of StringCvt.radix * IntInf.int
413
414fun read2 str = case IntInf.scan StringCvt.BIN (makeReader str) 0 of
415 NONE => raise (FailRead (StringCvt.BIN, str))
416 | SOME (v, p) => if p = String.size str
417 then v
418 else raise (FailRead (StringCvt.BIN,
419 str))
420
421fun read8 str = case IntInf.scan StringCvt.OCT (makeReader str) 0 of
422 NONE => raise (FailRead (StringCvt.OCT, str))
423 | SOME (v, p) => if p = String.size str
424 then v
425 else raise (FailRead (StringCvt.OCT,
426 str))
427
428fun read10 str = case IntInf.scan StringCvt.DEC (makeReader str) 0 of
429 NONE => raise (FailRead (StringCvt.DEC, str))
430 | SOME (v, p) => if p = String.size str
431 then v
432 else raise (FailRead (StringCvt.DEC,
433 str))
434
435fun read16 str = case IntInf.scan StringCvt.HEX (makeReader str) 0 of
436 NONE => raise (FailRead (StringCvt.HEX, str))
437 | SOME (v, p) => if p = String.size str
438 then v
439 else raise (FailRead (StringCvt.HEX,
440 str))
441
442fun read str = case IntInf.fromString str of
443 NONE => raise (FailRead (StringCvt.DEC, str))
444 | SOME v => v
445
446fun toStr2 v = IntInf.fmt StringCvt.BIN v
447
448fun toStr8 v = IntInf.fmt StringCvt.OCT v
449
450fun toStr10 v = IntInf.fmt StringCvt.DEC v
451
452fun toStr16 v = IntInf.fmt StringCvt.HEX v
453
454fun toStr v = IntInf.toString v
455
456fun baseToStr (base: StringCvt.radix): string =
457 case base of
458 StringCvt.BIN => "BIN"
459 | StringCvt.OCT => "OCT"
460 | StringCvt.DEC => "DEC"
461 | StringCvt.HEX => "HEX"
462
463fun f ({ v: IntInf.int, b: string, oc: string, d: string, x: string}): unit =
464 let val bv = read2 b
465 val ov = read8 oc
466 val dv = read10 d
467 val xv = read16 x
468 val vv = read d
469 in if bv <> v
470 then raise (FailRead (StringCvt.BIN, b))
471 else if ov <> v
472 then raise (FailRead (StringCvt.OCT, oc))
473 else if dv <> v
474 then raise (FailRead (StringCvt.DEC, d))
475 else if xv <> v
476 then raise (FailRead (StringCvt.HEX, x))
477 else if vv <> v
478 then raise (FailRead (StringCvt.DEC, d))
479 else let val vb = toStr2 v
480 val vo = toStr8 v
481 val vd = toStr10 v
482 val vx = toStr16 v
483 val vv = toStr v
484 val (b, oc, d, x) = if v = 0 andalso String.sub (d, 0) = #"~"
485 then ("0", "0", "0", "0")
486 else (b, oc, d, x)
487 in if vb <> b
488 then raise (FailWrite (StringCvt.BIN, v))
489 else if vo <> oc
490 then raise (FailWrite (StringCvt.OCT, v))
491 else if vd <> d
492 then raise (FailWrite (StringCvt.DEC, v))
493 else if vx <> x
494 then raise (FailWrite (StringCvt.HEX, v))
495 else if vv <> d
496 then raise (FailWrite (StringCvt.DEC, v))
497 else ()
498 end
499 end handle FailRead (base, str) =>
500 print ("FailRead, base = " ^ (baseToStr base)
501 ^ ", str = |" ^ str ^ "|\n")
502 | FailWrite (base, v) =>
503 print ("FailWrite, base = " ^ (baseToStr base)
504 ^ ", d = |" ^ d ^ "|\n")
505
506val _ = List.app f arg
507val _ = print "All ok\n"