Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | ------------------------------------------------------------------------ |
2 | -- divide.decTest -- decimal division -- | |
3 | -- Copyright (c) IBM Corporation, 1981, 2004. All rights reserved. -- | |
4 | ------------------------------------------------------------------------ | |
5 | -- Please see the document "General Decimal Arithmetic Testcases" -- | |
6 | -- at http://www2.hursley.ibm.com/decimal for the description of -- | |
7 | -- these testcases. -- | |
8 | -- -- | |
9 | -- These testcases are experimental ('beta' versions), and they -- | |
10 | -- may contain errors. They are offered on an as-is basis. In -- | |
11 | -- particular, achieving the same results as the tests here is not -- | |
12 | -- a guarantee that an implementation complies with any Standard -- | |
13 | -- or specification. The tests are not exhaustive. -- | |
14 | -- -- | |
15 | -- Please send comments, suggestions, and corrections to the author: -- | |
16 | -- Mike Cowlishaw, IBM Fellow -- | |
17 | -- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK -- | |
18 | -- mfc@uk.ibm.com -- | |
19 | ------------------------------------------------------------------------ | |
20 | version: 2.39 | |
21 | ||
22 | extended: 1 | |
23 | precision: 9 | |
24 | rounding: half_up | |
25 | maxExponent: 384 | |
26 | minexponent: -383 | |
27 | ||
28 | -- sanity checks | |
29 | divx001 divide 1 1 -> 1 | |
30 | divx002 divide 2 1 -> 2 | |
31 | divx003 divide 1 2 -> 0.5 | |
32 | divx004 divide 2 2 -> 1 | |
33 | divx005 divide 0 1 -> 0 | |
34 | divx006 divide 0 2 -> 0 | |
35 | divx007 divide 1 3 -> 0.333333333 Inexact Rounded | |
36 | divx008 divide 2 3 -> 0.666666667 Inexact Rounded | |
37 | divx009 divide 3 3 -> 1 | |
38 | ||
39 | divx010 divide 2.4 1 -> 2.4 | |
40 | divx011 divide 2.4 -1 -> -2.4 | |
41 | divx012 divide -2.4 1 -> -2.4 | |
42 | divx013 divide -2.4 -1 -> 2.4 | |
43 | divx014 divide 2.40 1 -> 2.40 | |
44 | divx015 divide 2.400 1 -> 2.400 | |
45 | divx016 divide 2.4 2 -> 1.2 | |
46 | divx017 divide 2.400 2 -> 1.200 | |
47 | divx018 divide 2. 2 -> 1 | |
48 | divx019 divide 20 20 -> 1 | |
49 | ||
50 | divx020 divide 187 187 -> 1 | |
51 | divx021 divide 5 2 -> 2.5 | |
52 | divx022 divide 5 2.0 -> 2.5 | |
53 | divx023 divide 5 2.000 -> 2.5 | |
54 | divx024 divide 5 0.20 -> 25 | |
55 | divx025 divide 5 0.200 -> 25 | |
56 | divx026 divide 10 1 -> 10 | |
57 | divx027 divide 100 1 -> 100 | |
58 | divx028 divide 1000 1 -> 1000 | |
59 | divx029 divide 1000 100 -> 10 | |
60 | ||
61 | divx030 divide 1 2 -> 0.5 | |
62 | divx031 divide 1 4 -> 0.25 | |
63 | divx032 divide 1 8 -> 0.125 | |
64 | divx033 divide 1 16 -> 0.0625 | |
65 | divx034 divide 1 32 -> 0.03125 | |
66 | divx035 divide 1 64 -> 0.015625 | |
67 | divx040 divide 1 -2 -> -0.5 | |
68 | divx041 divide 1 -4 -> -0.25 | |
69 | divx042 divide 1 -8 -> -0.125 | |
70 | divx043 divide 1 -16 -> -0.0625 | |
71 | divx044 divide 1 -32 -> -0.03125 | |
72 | divx045 divide 1 -64 -> -0.015625 | |
73 | divx050 divide -1 2 -> -0.5 | |
74 | divx051 divide -1 4 -> -0.25 | |
75 | divx052 divide -1 8 -> -0.125 | |
76 | divx053 divide -1 16 -> -0.0625 | |
77 | divx054 divide -1 32 -> -0.03125 | |
78 | divx055 divide -1 64 -> -0.015625 | |
79 | divx060 divide -1 -2 -> 0.5 | |
80 | divx061 divide -1 -4 -> 0.25 | |
81 | divx062 divide -1 -8 -> 0.125 | |
82 | divx063 divide -1 -16 -> 0.0625 | |
83 | divx064 divide -1 -32 -> 0.03125 | |
84 | divx065 divide -1 -64 -> 0.015625 | |
85 | ||
86 | divx070 divide 999999999 1 -> 999999999 | |
87 | divx071 divide 999999999.4 1 -> 999999999 Inexact Rounded | |
88 | divx072 divide 999999999.5 1 -> 1.00000000E+9 Inexact Rounded | |
89 | divx073 divide 999999999.9 1 -> 1.00000000E+9 Inexact Rounded | |
90 | divx074 divide 999999999.999 1 -> 1.00000000E+9 Inexact Rounded | |
91 | precision: 6 | |
92 | divx080 divide 999999999 1 -> 1.00000E+9 Inexact Rounded | |
93 | divx081 divide 99999999 1 -> 1.00000E+8 Inexact Rounded | |
94 | divx082 divide 9999999 1 -> 1.00000E+7 Inexact Rounded | |
95 | divx083 divide 999999 1 -> 999999 | |
96 | divx084 divide 99999 1 -> 99999 | |
97 | divx085 divide 9999 1 -> 9999 | |
98 | divx086 divide 999 1 -> 999 | |
99 | divx087 divide 99 1 -> 99 | |
100 | divx088 divide 9 1 -> 9 | |
101 | ||
102 | precision: 9 | |
103 | divx090 divide 0. 1 -> 0 | |
104 | divx091 divide .0 1 -> 0.0 | |
105 | divx092 divide 0.00 1 -> 0.00 | |
106 | divx093 divide 0.00E+9 1 -> 0E+7 | |
107 | divx094 divide 0.0000E-50 1 -> 0E-54 | |
108 | ||
109 | divx095 divide 1 1E-8 -> 1E+8 | |
110 | divx096 divide 1 1E-9 -> 1E+9 | |
111 | divx097 divide 1 1E-10 -> 1E+10 | |
112 | divx098 divide 1 1E-11 -> 1E+11 | |
113 | divx099 divide 1 1E-12 -> 1E+12 | |
114 | ||
115 | divx100 divide 1 1 -> 1 | |
116 | divx101 divide 1 2 -> 0.5 | |
117 | divx102 divide 1 3 -> 0.333333333 Inexact Rounded | |
118 | divx103 divide 1 4 -> 0.25 | |
119 | divx104 divide 1 5 -> 0.2 | |
120 | divx105 divide 1 6 -> 0.166666667 Inexact Rounded | |
121 | divx106 divide 1 7 -> 0.142857143 Inexact Rounded | |
122 | divx107 divide 1 8 -> 0.125 | |
123 | divx108 divide 1 9 -> 0.111111111 Inexact Rounded | |
124 | divx109 divide 1 10 -> 0.1 | |
125 | divx110 divide 1 1 -> 1 | |
126 | divx111 divide 2 1 -> 2 | |
127 | divx112 divide 3 1 -> 3 | |
128 | divx113 divide 4 1 -> 4 | |
129 | divx114 divide 5 1 -> 5 | |
130 | divx115 divide 6 1 -> 6 | |
131 | divx116 divide 7 1 -> 7 | |
132 | divx117 divide 8 1 -> 8 | |
133 | divx118 divide 9 1 -> 9 | |
134 | divx119 divide 10 1 -> 10 | |
135 | ||
136 | divx120 divide 3E+1 0.001 -> 3E+4 | |
137 | divx121 divide 2.200 2 -> 1.100 | |
138 | ||
139 | divx130 divide 12345 4.999 -> 2469.49390 Inexact Rounded | |
140 | divx131 divide 12345 4.99 -> 2473.94790 Inexact Rounded | |
141 | divx132 divide 12345 4.9 -> 2519.38776 Inexact Rounded | |
142 | divx133 divide 12345 5 -> 2469 | |
143 | divx134 divide 12345 5.1 -> 2420.58824 Inexact Rounded | |
144 | divx135 divide 12345 5.01 -> 2464.07186 Inexact Rounded | |
145 | divx136 divide 12345 5.001 -> 2468.50630 Inexact Rounded | |
146 | ||
147 | precision: 9 | |
148 | maxexponent: 999999999 | |
149 | minexponent: -999999999 | |
150 | ||
151 | -- test possibly imprecise results | |
152 | divx220 divide 391 597 -> 0.654941374 Inexact Rounded | |
153 | divx221 divide 391 -597 -> -0.654941374 Inexact Rounded | |
154 | divx222 divide -391 597 -> -0.654941374 Inexact Rounded | |
155 | divx223 divide -391 -597 -> 0.654941374 Inexact Rounded | |
156 | ||
157 | -- test some cases that are close to exponent overflow | |
158 | maxexponent: 999999999 | |
159 | minexponent: -999999999 | |
160 | divx270 divide 1 1e999999999 -> 1E-999999999 | |
161 | divx271 divide 1 0.9e999999999 -> 1.11111111E-999999999 Inexact Rounded | |
162 | divx272 divide 1 0.99e999999999 -> 1.01010101E-999999999 Inexact Rounded | |
163 | divx273 divide 1 0.999999999e999999999 -> 1.00000000E-999999999 Inexact Rounded | |
164 | divx274 divide 9e999999999 1 -> 9E+999999999 | |
165 | divx275 divide 9.9e999999999 1 -> 9.9E+999999999 | |
166 | divx276 divide 9.99e999999999 1 -> 9.99E+999999999 | |
167 | divx277 divide 9.99999999e999999999 1 -> 9.99999999E+999999999 | |
168 | ||
169 | divx280 divide 0.1 9e-999999999 -> 1.11111111E+999999997 Inexact Rounded | |
170 | divx281 divide 0.1 99e-999999999 -> 1.01010101E+999999996 Inexact Rounded | |
171 | divx282 divide 0.1 999e-999999999 -> 1.00100100E+999999995 Inexact Rounded | |
172 | ||
173 | divx283 divide 0.1 9e-999999998 -> 1.11111111E+999999996 Inexact Rounded | |
174 | divx284 divide 0.1 99e-999999998 -> 1.01010101E+999999995 Inexact Rounded | |
175 | divx285 divide 0.1 999e-999999998 -> 1.00100100E+999999994 Inexact Rounded | |
176 | divx286 divide 0.1 999e-999999997 -> 1.00100100E+999999993 Inexact Rounded | |
177 | divx287 divide 0.1 9999e-999999997 -> 1.00010001E+999999992 Inexact Rounded | |
178 | divx288 divide 0.1 99999e-999999997 -> 1.00001000E+999999991 Inexact Rounded | |
179 | ||
180 | -- Divide into 0 tests | |
181 | ||
182 | divx301 divide 0 7 -> 0 | |
183 | divx302 divide 0 7E-5 -> 0E+5 | |
184 | divx303 divide 0 7E-1 -> 0E+1 | |
185 | divx304 divide 0 7E+1 -> 0.0 | |
186 | divx305 divide 0 7E+5 -> 0.00000 | |
187 | divx306 divide 0 7E+6 -> 0.000000 | |
188 | divx307 divide 0 7E+7 -> 0E-7 | |
189 | divx308 divide 0 70E-5 -> 0E+5 | |
190 | divx309 divide 0 70E-1 -> 0E+1 | |
191 | divx310 divide 0 70E+0 -> 0 | |
192 | divx311 divide 0 70E+1 -> 0.0 | |
193 | divx312 divide 0 70E+5 -> 0.00000 | |
194 | divx313 divide 0 70E+6 -> 0.000000 | |
195 | divx314 divide 0 70E+7 -> 0E-7 | |
196 | divx315 divide 0 700E-5 -> 0E+5 | |
197 | divx316 divide 0 700E-1 -> 0E+1 | |
198 | divx317 divide 0 700E+0 -> 0 | |
199 | divx318 divide 0 700E+1 -> 0.0 | |
200 | divx319 divide 0 700E+5 -> 0.00000 | |
201 | divx320 divide 0 700E+6 -> 0.000000 | |
202 | divx321 divide 0 700E+7 -> 0E-7 | |
203 | divx322 divide 0 700E+77 -> 0E-77 | |
204 | ||
205 | divx331 divide 0E-3 7E-5 -> 0E+2 | |
206 | divx332 divide 0E-3 7E-1 -> 0.00 | |
207 | divx333 divide 0E-3 7E+1 -> 0.0000 | |
208 | divx334 divide 0E-3 7E+5 -> 0E-8 | |
209 | divx335 divide 0E-1 7E-5 -> 0E+4 | |
210 | divx336 divide 0E-1 7E-1 -> 0 | |
211 | divx337 divide 0E-1 7E+1 -> 0.00 | |
212 | divx338 divide 0E-1 7E+5 -> 0.000000 | |
213 | divx339 divide 0E+1 7E-5 -> 0E+6 | |
214 | divx340 divide 0E+1 7E-1 -> 0E+2 | |
215 | divx341 divide 0E+1 7E+1 -> 0 | |
216 | divx342 divide 0E+1 7E+5 -> 0.0000 | |
217 | divx343 divide 0E+3 7E-5 -> 0E+8 | |
218 | divx344 divide 0E+3 7E-1 -> 0E+4 | |
219 | divx345 divide 0E+3 7E+1 -> 0E+2 | |
220 | divx346 divide 0E+3 7E+5 -> 0.00 | |
221 | ||
222 | maxexponent: 92 | |
223 | minexponent: -92 | |
224 | precision: 7 | |
225 | divx351 divide 0E-92 7E-1 -> 0E-91 | |
226 | divx352 divide 0E-92 7E+1 -> 0E-93 | |
227 | divx353 divide 0E-92 7E+5 -> 0E-97 | |
228 | divx354 divide 0E-92 7E+6 -> 0E-98 | |
229 | divx355 divide 0E-92 7E+7 -> 0E-98 Clamped | |
230 | divx356 divide 0E-92 777E-1 -> 0E-91 | |
231 | divx357 divide 0E-92 777E+1 -> 0E-93 | |
232 | divx358 divide 0E-92 777E+3 -> 0E-95 | |
233 | divx359 divide 0E-92 777E+4 -> 0E-96 | |
234 | divx360 divide 0E-92 777E+5 -> 0E-97 | |
235 | divx361 divide 0E-92 777E+6 -> 0E-98 | |
236 | divx362 divide 0E-92 777E+7 -> 0E-98 Clamped | |
237 | divx363 divide 0E-92 7E+92 -> 0E-98 Clamped | |
238 | ||
239 | divx371 divide 0E-92 700E-1 -> 0E-91 | |
240 | divx372 divide 0E-92 700E+1 -> 0E-93 | |
241 | divx373 divide 0E-92 700E+3 -> 0E-95 | |
242 | divx374 divide 0E-92 700E+4 -> 0E-96 | |
243 | divx375 divide 0E-92 700E+5 -> 0E-97 | |
244 | divx376 divide 0E-92 700E+6 -> 0E-98 | |
245 | divx377 divide 0E-92 700E+7 -> 0E-98 Clamped | |
246 | ||
247 | divx381 divide 0E+92 7E+1 -> 0E+91 | |
248 | divx382 divide 0E+92 7E+0 -> 0E+92 | |
249 | divx383 divide 0E+92 7E-1 -> 0E+92 Clamped | |
250 | divx384 divide 0E+90 777E+1 -> 0E+89 | |
251 | divx385 divide 0E+90 777E-1 -> 0E+91 | |
252 | divx386 divide 0E+90 777E-2 -> 0E+92 | |
253 | divx387 divide 0E+90 777E-3 -> 0E+92 Clamped | |
254 | divx388 divide 0E+90 777E-4 -> 0E+92 Clamped | |
255 | ||
256 | divx391 divide 0E+90 700E+1 -> 0E+89 | |
257 | divx392 divide 0E+90 700E-1 -> 0E+91 | |
258 | divx393 divide 0E+90 700E-2 -> 0E+92 | |
259 | divx394 divide 0E+90 700E-3 -> 0E+92 Clamped | |
260 | divx395 divide 0E+90 700E-4 -> 0E+92 Clamped | |
261 | ||
262 | -- input rounding checks | |
263 | maxexponent: 999 | |
264 | minexponent: -999 | |
265 | precision: 9 | |
266 | divx401 divide 12345678000 1 -> 1.23456780E+10 Rounded | |
267 | divx402 divide 1 12345678000 -> 8.10000066E-11 Inexact Rounded | |
268 | divx403 divide 1234567800 1 -> 1.23456780E+9 Rounded | |
269 | divx404 divide 1 1234567800 -> 8.10000066E-10 Inexact Rounded | |
270 | divx405 divide 1234567890 1 -> 1.23456789E+9 Rounded | |
271 | divx406 divide 1 1234567890 -> 8.10000007E-10 Inexact Rounded | |
272 | divx407 divide 1234567891 1 -> 1.23456789E+9 Inexact Rounded | |
273 | divx408 divide 1 1234567891 -> 8.10000007E-10 Inexact Rounded | |
274 | divx409 divide 12345678901 1 -> 1.23456789E+10 Inexact Rounded | |
275 | divx410 divide 1 12345678901 -> 8.10000007E-11 Inexact Rounded | |
276 | divx411 divide 1234567896 1 -> 1.23456790E+9 Inexact Rounded | |
277 | divx412 divide 1 1234567896 -> 8.10000003E-10 Inexact Rounded | |
278 | divx413 divide 1 1234567897 -> 8.10000003E-10 Inexact Rounded | |
279 | divx414 divide 1 1234567898 -> 8.10000002E-10 Inexact Rounded | |
280 | divx415 divide 1 1234567899 -> 8.10000001E-10 Inexact Rounded | |
281 | divx416 divide 1 1234567900 -> 8.10000001E-10 Inexact Rounded | |
282 | divx417 divide 1 1234567901 -> 8.10000000E-10 Inexact Rounded | |
283 | divx418 divide 1 1234567902 -> 8.09999999E-10 Inexact Rounded | |
284 | -- some longies | |
285 | divx421 divide 1234567896.000000000000 1 -> 1.23456790E+9 Inexact Rounded | |
286 | divx422 divide 1 1234567896.000000000000 -> 8.10000003E-10 Inexact Rounded | |
287 | divx423 divide 1234567896.000000000001 1 -> 1.23456790E+9 Inexact Rounded | |
288 | divx424 divide 1 1234567896.000000000001 -> 8.10000003E-10 Inexact Rounded | |
289 | divx425 divide 1234567896.000000000000000000000000000000000000000009 1 -> 1.23456790E+9 Inexact Rounded | |
290 | divx426 divide 1 1234567896.000000000000000000000000000000000000000009 -> 8.10000003E-10 Inexact Rounded | |
291 | divx427 divide 1234567897.900010000000000000000000000000000000000009 1 -> 1.23456790E+9 Inexact Rounded | |
292 | divx428 divide 1 1234567897.900010000000000000000000000000000000000009 -> 8.10000002E-10 Inexact Rounded | |
293 | ||
294 | precision: 15 | |
295 | -- still checking... | |
296 | divx441 divide 12345678000 1 -> 12345678000 | |
297 | divx442 divide 1 12345678000 -> 8.10000066420005E-11 Inexact Rounded | |
298 | divx443 divide 1234567800 1 -> 1234567800 | |
299 | divx444 divide 1 1234567800 -> 8.10000066420005E-10 Inexact Rounded | |
300 | divx445 divide 1234567890 1 -> 1234567890 | |
301 | divx446 divide 1 1234567890 -> 8.10000007371000E-10 Inexact Rounded | |
302 | divx447 divide 1234567891 1 -> 1234567891 | |
303 | divx448 divide 1 1234567891 -> 8.10000006714900E-10 Inexact Rounded | |
304 | divx449 divide 12345678901 1 -> 12345678901 | |
305 | divx450 divide 1 12345678901 -> 8.10000007305390E-11 Inexact Rounded | |
306 | divx451 divide 1234567896 1 -> 1234567896 | |
307 | divx452 divide 1 1234567896 -> 8.10000003434400E-10 Inexact Rounded | |
308 | ||
309 | -- high-lows | |
310 | divx453 divide 1e+1 1 -> 1E+1 | |
311 | divx454 divide 1e+1 1.0 -> 1E+1 | |
312 | divx455 divide 1e+1 1.00 -> 1E+1 | |
313 | divx456 divide 1e+2 2 -> 5E+1 | |
314 | divx457 divide 1e+2 2.0 -> 5E+1 | |
315 | divx458 divide 1e+2 2.00 -> 5E+1 | |
316 | ||
317 | -- some from IEEE discussions | |
318 | divx460 divide 3e0 2e0 -> 1.5 | |
319 | divx461 divide 30e-1 2e0 -> 1.5 | |
320 | divx462 divide 300e-2 2e0 -> 1.50 | |
321 | divx464 divide 3000e-3 2e0 -> 1.500 | |
322 | divx465 divide 3e0 20e-1 -> 1.5 | |
323 | divx466 divide 30e-1 20e-1 -> 1.5 | |
324 | divx467 divide 300e-2 20e-1 -> 1.5 | |
325 | divx468 divide 3000e-3 20e-1 -> 1.50 | |
326 | divx469 divide 3e0 200e-2 -> 1.5 | |
327 | divx470 divide 30e-1 200e-2 -> 1.5 | |
328 | divx471 divide 300e-2 200e-2 -> 1.5 | |
329 | divx472 divide 3000e-3 200e-2 -> 1.5 | |
330 | divx473 divide 3e0 2000e-3 -> 1.5 | |
331 | divx474 divide 30e-1 2000e-3 -> 1.5 | |
332 | divx475 divide 300e-2 2000e-3 -> 1.5 | |
333 | divx476 divide 3000e-3 2000e-3 -> 1.5 | |
334 | ||
335 | -- some reciprocals | |
336 | divx480 divide 1 1.0E+33 -> 1E-33 | |
337 | divx481 divide 1 10E+33 -> 1E-34 | |
338 | divx482 divide 1 1.0E-33 -> 1E+33 | |
339 | divx483 divide 1 10E-33 -> 1E+32 | |
340 | ||
341 | -- RMS discussion table | |
342 | maxexponent: 96 | |
343 | minexponent: -95 | |
344 | precision: 7 | |
345 | ||
346 | divx484 divide 0e5 1e3 -> 0E+2 | |
347 | divx485 divide 0e5 2e3 -> 0E+2 | |
348 | divx486 divide 0e5 10e2 -> 0E+3 | |
349 | divx487 divide 0e5 20e2 -> 0E+3 | |
350 | divx488 divide 0e5 100e1 -> 0E+4 | |
351 | divx489 divide 0e5 200e1 -> 0E+4 | |
352 | ||
353 | divx491 divide 1e5 1e3 -> 1E+2 | |
354 | divx492 divide 1e5 2e3 -> 5E+1 | |
355 | divx493 divide 1e5 10e2 -> 1E+2 | |
356 | divx494 divide 1e5 20e2 -> 5E+1 | |
357 | divx495 divide 1e5 100e1 -> 1E+2 | |
358 | divx496 divide 1e5 200e1 -> 5E+1 | |
359 | ||
360 | -- tryzeros cases | |
361 | precision: 7 | |
362 | rounding: half_up | |
363 | maxExponent: 92 | |
364 | minexponent: -92 | |
365 | divx497 divide 0E+86 1000E-13 -> 0E+92 Clamped | |
366 | divx498 divide 0E-98 1000E+13 -> 0E-98 Clamped | |
367 | ||
368 | precision: 9 | |
369 | rounding: half_up | |
370 | maxExponent: 999 | |
371 | minexponent: -999 | |
372 | ||
373 | -- focus on trailing zeros issues | |
374 | precision: 9 | |
375 | divx500 divide 1 9.9 -> 0.101010101 Inexact Rounded | |
376 | precision: 8 | |
377 | divx501 divide 1 9.9 -> 0.10101010 Inexact Rounded | |
378 | precision: 7 | |
379 | divx502 divide 1 9.9 -> 0.1010101 Inexact Rounded | |
380 | precision: 6 | |
381 | divx503 divide 1 9.9 -> 0.101010 Inexact Rounded | |
382 | precision: 9 | |
383 | ||
384 | divx511 divide 1 2 -> 0.5 | |
385 | divx512 divide 1.0 2 -> 0.5 | |
386 | divx513 divide 1.00 2 -> 0.50 | |
387 | divx514 divide 1.000 2 -> 0.500 | |
388 | divx515 divide 1.0000 2 -> 0.5000 | |
389 | divx516 divide 1.00000 2 -> 0.50000 | |
390 | divx517 divide 1.000000 2 -> 0.500000 | |
391 | divx518 divide 1.0000000 2 -> 0.5000000 | |
392 | divx519 divide 1.00 2.00 -> 0.5 | |
393 | ||
394 | divx521 divide 2 1 -> 2 | |
395 | divx522 divide 2 1.0 -> 2 | |
396 | divx523 divide 2 1.00 -> 2 | |
397 | divx524 divide 2 1.000 -> 2 | |
398 | divx525 divide 2 1.0000 -> 2 | |
399 | divx526 divide 2 1.00000 -> 2 | |
400 | divx527 divide 2 1.000000 -> 2 | |
401 | divx528 divide 2 1.0000000 -> 2 | |
402 | divx529 divide 2.00 1.00 -> 2 | |
403 | ||
404 | divx530 divide 2.40 2 -> 1.20 | |
405 | divx531 divide 2.40 4 -> 0.60 | |
406 | divx532 divide 2.40 10 -> 0.24 | |
407 | divx533 divide 2.40 2.0 -> 1.2 | |
408 | divx534 divide 2.40 4.0 -> 0.6 | |
409 | divx535 divide 2.40 10.0 -> 0.24 | |
410 | divx536 divide 2.40 2.00 -> 1.2 | |
411 | divx537 divide 2.40 4.00 -> 0.6 | |
412 | divx538 divide 2.40 10.00 -> 0.24 | |
413 | divx539 divide 0.9 0.1 -> 9 | |
414 | divx540 divide 0.9 0.01 -> 9E+1 | |
415 | divx541 divide 0.9 0.001 -> 9E+2 | |
416 | divx542 divide 5 2 -> 2.5 | |
417 | divx543 divide 5 2.0 -> 2.5 | |
418 | divx544 divide 5 2.00 -> 2.5 | |
419 | divx545 divide 5 20 -> 0.25 | |
420 | divx546 divide 5 20.0 -> 0.25 | |
421 | divx547 divide 2.400 2 -> 1.200 | |
422 | divx548 divide 2.400 2.0 -> 1.20 | |
423 | divx549 divide 2.400 2.400 -> 1 | |
424 | ||
425 | divx550 divide 240 1 -> 240 | |
426 | divx551 divide 240 10 -> 24 | |
427 | divx552 divide 240 100 -> 2.4 | |
428 | divx553 divide 240 1000 -> 0.24 | |
429 | divx554 divide 2400 1 -> 2400 | |
430 | divx555 divide 2400 10 -> 240 | |
431 | divx556 divide 2400 100 -> 24 | |
432 | divx557 divide 2400 1000 -> 2.4 | |
433 | ||
434 | -- +ve exponent | |
435 | precision: 5 | |
436 | divx570 divide 2.4E+6 2 -> 1.2E+6 | |
437 | divx571 divide 2.40E+6 2 -> 1.20E+6 | |
438 | divx572 divide 2.400E+6 2 -> 1.200E+6 | |
439 | divx573 divide 2.4000E+6 2 -> 1.2000E+6 | |
440 | divx574 divide 24E+5 2 -> 1.2E+6 | |
441 | divx575 divide 240E+4 2 -> 1.20E+6 | |
442 | divx576 divide 2400E+3 2 -> 1.200E+6 | |
443 | divx577 divide 24000E+2 2 -> 1.2000E+6 | |
444 | precision: 6 | |
445 | divx580 divide 2.4E+6 2 -> 1.2E+6 | |
446 | divx581 divide 2.40E+6 2 -> 1.20E+6 | |
447 | divx582 divide 2.400E+6 2 -> 1.200E+6 | |
448 | divx583 divide 2.4000E+6 2 -> 1.2000E+6 | |
449 | divx584 divide 24E+5 2 -> 1.2E+6 | |
450 | divx585 divide 240E+4 2 -> 1.20E+6 | |
451 | divx586 divide 2400E+3 2 -> 1.200E+6 | |
452 | divx587 divide 24000E+2 2 -> 1.2000E+6 | |
453 | precision: 7 | |
454 | divx590 divide 2.4E+6 2 -> 1.2E+6 | |
455 | divx591 divide 2.40E+6 2 -> 1.20E+6 | |
456 | divx592 divide 2.400E+6 2 -> 1.200E+6 | |
457 | divx593 divide 2.4000E+6 2 -> 1.2000E+6 | |
458 | divx594 divide 24E+5 2 -> 1.2E+6 | |
459 | divx595 divide 240E+4 2 -> 1.20E+6 | |
460 | divx596 divide 2400E+3 2 -> 1.200E+6 | |
461 | divx597 divide 24000E+2 2 -> 1.2000E+6 | |
462 | precision: 9 | |
463 | divx600 divide 2.4E+9 2 -> 1.2E+9 | |
464 | divx601 divide 2.40E+9 2 -> 1.20E+9 | |
465 | divx602 divide 2.400E+9 2 -> 1.200E+9 | |
466 | divx603 divide 2.4000E+9 2 -> 1.2000E+9 | |
467 | divx604 divide 24E+8 2 -> 1.2E+9 | |
468 | divx605 divide 240E+7 2 -> 1.20E+9 | |
469 | divx606 divide 2400E+6 2 -> 1.200E+9 | |
470 | divx607 divide 24000E+5 2 -> 1.2000E+9 | |
471 | ||
472 | -- long operand triangle | |
473 | precision: 33 | |
474 | divx610 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8131097703792 Inexact Rounded | |
475 | precision: 32 | |
476 | divx611 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.813109770379 Inexact Rounded | |
477 | precision: 31 | |
478 | divx612 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.81310977038 Inexact Rounded | |
479 | precision: 30 | |
480 | divx613 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8131097704 Inexact Rounded | |
481 | precision: 29 | |
482 | divx614 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.813109770 Inexact Rounded | |
483 | precision: 28 | |
484 | divx615 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.81310977 Inexact Rounded | |
485 | precision: 27 | |
486 | divx616 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8131098 Inexact Rounded | |
487 | precision: 26 | |
488 | divx617 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.813110 Inexact Rounded | |
489 | precision: 25 | |
490 | divx618 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.81311 Inexact Rounded | |
491 | precision: 24 | |
492 | divx619 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8131 Inexact Rounded | |
493 | precision: 23 | |
494 | divx620 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.813 Inexact Rounded | |
495 | precision: 22 | |
496 | divx621 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.81 Inexact Rounded | |
497 | precision: 21 | |
498 | divx622 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8 Inexact Rounded | |
499 | precision: 20 | |
500 | divx623 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817798 Inexact Rounded | |
501 | precision: 19 | |
502 | divx624 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101140888379681780E+19 Inexact Rounded | |
503 | precision: 18 | |
504 | divx625 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114088837968178E+19 Inexact Rounded | |
505 | precision: 17 | |
506 | divx626 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011408883796818E+19 Inexact Rounded | |
507 | precision: 16 | |
508 | divx627 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101140888379682E+19 Inexact Rounded | |
509 | precision: 15 | |
510 | divx628 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114088837968E+19 Inexact Rounded | |
511 | precision: 14 | |
512 | divx629 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011408883797E+19 Inexact Rounded | |
513 | precision: 13 | |
514 | divx630 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101140888380E+19 Inexact Rounded | |
515 | precision: 12 | |
516 | divx631 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114088838E+19 Inexact Rounded | |
517 | precision: 11 | |
518 | divx632 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011408884E+19 Inexact Rounded | |
519 | precision: 10 | |
520 | divx633 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101140888E+19 Inexact Rounded | |
521 | precision: 9 | |
522 | divx634 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114089E+19 Inexact Rounded | |
523 | precision: 8 | |
524 | divx635 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011409E+19 Inexact Rounded | |
525 | precision: 7 | |
526 | divx636 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101141E+19 Inexact Rounded | |
527 | precision: 6 | |
528 | divx637 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114E+19 Inexact Rounded | |
529 | precision: 5 | |
530 | divx638 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011E+19 Inexact Rounded | |
531 | precision: 4 | |
532 | divx639 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101E+19 Inexact Rounded | |
533 | precision: 3 | |
534 | divx640 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10E+19 Inexact Rounded | |
535 | precision: 2 | |
536 | divx641 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1E+19 Inexact Rounded | |
537 | precision: 1 | |
538 | divx642 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4E+19 Inexact Rounded | |
539 | ||
540 | -- more zeros, etc. | |
541 | precision: 16 | |
542 | rounding: half_up | |
543 | maxExponent: 384 | |
544 | minExponent: -383 | |
545 | ||
546 | divx731 divide 5.00 1E-3 -> 5.00E+3 | |
547 | divx732 divide 00.00 0.000 -> NaN Division_undefined | |
548 | divx733 divide 00.00 0E-3 -> NaN Division_undefined | |
549 | divx734 divide 0 -0 -> NaN Division_undefined | |
550 | divx735 divide -0 0 -> NaN Division_undefined | |
551 | divx736 divide -0 -0 -> NaN Division_undefined | |
552 | ||
553 | divx741 divide 0 -1 -> -0 | |
554 | divx742 divide -0 -1 -> 0 | |
555 | divx743 divide 0 1 -> 0 | |
556 | divx744 divide -0 1 -> -0 | |
557 | divx745 divide -1 0 -> -Infinity Division_by_zero | |
558 | divx746 divide -1 -0 -> Infinity Division_by_zero | |
559 | divx747 divide 1 0 -> Infinity Division_by_zero | |
560 | divx748 divide 1 -0 -> -Infinity Division_by_zero | |
561 | ||
562 | divx751 divide 0.0 -1 -> -0.0 | |
563 | divx752 divide -0.0 -1 -> 0.0 | |
564 | divx753 divide 0.0 1 -> 0.0 | |
565 | divx754 divide -0.0 1 -> -0.0 | |
566 | divx755 divide -1.0 0 -> -Infinity Division_by_zero | |
567 | divx756 divide -1.0 -0 -> Infinity Division_by_zero | |
568 | divx757 divide 1.0 0 -> Infinity Division_by_zero | |
569 | divx758 divide 1.0 -0 -> -Infinity Division_by_zero | |
570 | ||
571 | divx761 divide 0 -1.0 -> -0E+1 | |
572 | divx762 divide -0 -1.0 -> 0E+1 | |
573 | divx763 divide 0 1.0 -> 0E+1 | |
574 | divx764 divide -0 1.0 -> -0E+1 | |
575 | divx765 divide -1 0.0 -> -Infinity Division_by_zero | |
576 | divx766 divide -1 -0.0 -> Infinity Division_by_zero | |
577 | divx767 divide 1 0.0 -> Infinity Division_by_zero | |
578 | divx768 divide 1 -0.0 -> -Infinity Division_by_zero | |
579 | ||
580 | divx771 divide 0.0 -1.0 -> -0 | |
581 | divx772 divide -0.0 -1.0 -> 0 | |
582 | divx773 divide 0.0 1.0 -> 0 | |
583 | divx774 divide -0.0 1.0 -> -0 | |
584 | divx775 divide -1.0 0.0 -> -Infinity Division_by_zero | |
585 | divx776 divide -1.0 -0.0 -> Infinity Division_by_zero | |
586 | divx777 divide 1.0 0.0 -> Infinity Division_by_zero | |
587 | divx778 divide 1.0 -0.0 -> -Infinity Division_by_zero | |
588 | ||
589 | -- Specials | |
590 | divx780 divide Inf -Inf -> NaN Invalid_operation | |
591 | divx781 divide Inf -1000 -> -Infinity | |
592 | divx782 divide Inf -1 -> -Infinity | |
593 | divx783 divide Inf -0 -> -Infinity | |
594 | divx784 divide Inf 0 -> Infinity | |
595 | divx785 divide Inf 1 -> Infinity | |
596 | divx786 divide Inf 1000 -> Infinity | |
597 | divx787 divide Inf Inf -> NaN Invalid_operation | |
598 | divx788 divide -1000 Inf -> -0E-398 Clamped | |
599 | divx789 divide -Inf Inf -> NaN Invalid_operation | |
600 | divx790 divide -1 Inf -> -0E-398 Clamped | |
601 | divx791 divide -0 Inf -> -0E-398 Clamped | |
602 | divx792 divide 0 Inf -> 0E-398 Clamped | |
603 | divx793 divide 1 Inf -> 0E-398 Clamped | |
604 | divx794 divide 1000 Inf -> 0E-398 Clamped | |
605 | divx795 divide Inf Inf -> NaN Invalid_operation | |
606 | ||
607 | divx800 divide -Inf -Inf -> NaN Invalid_operation | |
608 | divx801 divide -Inf -1000 -> Infinity | |
609 | divx802 divide -Inf -1 -> Infinity | |
610 | divx803 divide -Inf -0 -> Infinity | |
611 | divx804 divide -Inf 0 -> -Infinity | |
612 | divx805 divide -Inf 1 -> -Infinity | |
613 | divx806 divide -Inf 1000 -> -Infinity | |
614 | divx807 divide -Inf Inf -> NaN Invalid_operation | |
615 | divx808 divide -1000 Inf -> -0E-398 Clamped | |
616 | divx809 divide -Inf -Inf -> NaN Invalid_operation | |
617 | divx810 divide -1 -Inf -> 0E-398 Clamped | |
618 | divx811 divide -0 -Inf -> 0E-398 Clamped | |
619 | divx812 divide 0 -Inf -> -0E-398 Clamped | |
620 | divx813 divide 1 -Inf -> -0E-398 Clamped | |
621 | divx814 divide 1000 -Inf -> -0E-398 Clamped | |
622 | divx815 divide Inf -Inf -> NaN Invalid_operation | |
623 | ||
624 | divx821 divide NaN -Inf -> NaN | |
625 | divx822 divide NaN -1000 -> NaN | |
626 | divx823 divide NaN -1 -> NaN | |
627 | divx824 divide NaN -0 -> NaN | |
628 | divx825 divide NaN 0 -> NaN | |
629 | divx826 divide NaN 1 -> NaN | |
630 | divx827 divide NaN 1000 -> NaN | |
631 | divx828 divide NaN Inf -> NaN | |
632 | divx829 divide NaN NaN -> NaN | |
633 | divx830 divide -Inf NaN -> NaN | |
634 | divx831 divide -1000 NaN -> NaN | |
635 | divx832 divide -1 NaN -> NaN | |
636 | divx833 divide -0 NaN -> NaN | |
637 | divx834 divide 0 NaN -> NaN | |
638 | divx835 divide 1 NaN -> NaN | |
639 | divx836 divide 1000 NaN -> NaN | |
640 | divx837 divide Inf NaN -> NaN | |
641 | ||
642 | divx841 divide sNaN -Inf -> NaN Invalid_operation | |
643 | divx842 divide sNaN -1000 -> NaN Invalid_operation | |
644 | divx843 divide sNaN -1 -> NaN Invalid_operation | |
645 | divx844 divide sNaN -0 -> NaN Invalid_operation | |
646 | divx845 divide sNaN 0 -> NaN Invalid_operation | |
647 | divx846 divide sNaN 1 -> NaN Invalid_operation | |
648 | divx847 divide sNaN 1000 -> NaN Invalid_operation | |
649 | divx848 divide sNaN NaN -> NaN Invalid_operation | |
650 | divx849 divide sNaN sNaN -> NaN Invalid_operation | |
651 | divx850 divide NaN sNaN -> NaN Invalid_operation | |
652 | divx851 divide -Inf sNaN -> NaN Invalid_operation | |
653 | divx852 divide -1000 sNaN -> NaN Invalid_operation | |
654 | divx853 divide -1 sNaN -> NaN Invalid_operation | |
655 | divx854 divide -0 sNaN -> NaN Invalid_operation | |
656 | divx855 divide 0 sNaN -> NaN Invalid_operation | |
657 | divx856 divide 1 sNaN -> NaN Invalid_operation | |
658 | divx857 divide 1000 sNaN -> NaN Invalid_operation | |
659 | divx858 divide Inf sNaN -> NaN Invalid_operation | |
660 | divx859 divide NaN sNaN -> NaN Invalid_operation | |
661 | ||
662 | -- propagating NaNs | |
663 | divx861 divide NaN9 -Inf -> NaN9 | |
664 | divx862 divide NaN8 1000 -> NaN8 | |
665 | divx863 divide NaN7 Inf -> NaN7 | |
666 | divx864 divide NaN6 NaN5 -> NaN6 | |
667 | divx865 divide -Inf NaN4 -> NaN4 | |
668 | divx866 divide -1000 NaN3 -> NaN3 | |
669 | divx867 divide Inf NaN2 -> NaN2 | |
670 | ||
671 | divx871 divide sNaN99 -Inf -> NaN99 Invalid_operation | |
672 | divx872 divide sNaN98 -1 -> NaN98 Invalid_operation | |
673 | divx873 divide sNaN97 NaN -> NaN97 Invalid_operation | |
674 | divx874 divide sNaN96 sNaN94 -> NaN96 Invalid_operation | |
675 | divx875 divide NaN95 sNaN93 -> NaN93 Invalid_operation | |
676 | divx876 divide -Inf sNaN92 -> NaN92 Invalid_operation | |
677 | divx877 divide 0 sNaN91 -> NaN91 Invalid_operation | |
678 | divx878 divide Inf sNaN90 -> NaN90 Invalid_operation | |
679 | divx879 divide NaN sNaN89 -> NaN89 Invalid_operation | |
680 | ||
681 | divx881 divide -NaN9 -Inf -> -NaN9 | |
682 | divx882 divide -NaN8 1000 -> -NaN8 | |
683 | divx883 divide -NaN7 Inf -> -NaN7 | |
684 | divx884 divide -NaN6 -NaN5 -> -NaN6 | |
685 | divx885 divide -Inf -NaN4 -> -NaN4 | |
686 | divx886 divide -1000 -NaN3 -> -NaN3 | |
687 | divx887 divide Inf -NaN2 -> -NaN2 | |
688 | ||
689 | divx891 divide -sNaN99 -Inf -> -NaN99 Invalid_operation | |
690 | divx892 divide -sNaN98 -1 -> -NaN98 Invalid_operation | |
691 | divx893 divide -sNaN97 NaN -> -NaN97 Invalid_operation | |
692 | divx894 divide -sNaN96 -sNaN94 -> -NaN96 Invalid_operation | |
693 | divx895 divide -NaN95 -sNaN93 -> -NaN93 Invalid_operation | |
694 | divx896 divide -Inf -sNaN92 -> -NaN92 Invalid_operation | |
695 | divx897 divide 0 -sNaN91 -> -NaN91 Invalid_operation | |
696 | divx898 divide Inf -sNaN90 -> -NaN90 Invalid_operation | |
697 | divx899 divide -NaN -sNaN89 -> -NaN89 Invalid_operation | |
698 | ||
699 | maxexponent: 999999999 | |
700 | minexponent: -999999999 | |
701 | ||
702 | -- Various flavours of divide by 0 | |
703 | divx901 divide 0 0 -> NaN Division_undefined | |
704 | divx902 divide 0.0E5 0 -> NaN Division_undefined | |
705 | divx903 divide 0.000 0 -> NaN Division_undefined | |
706 | divx904 divide 0.0001 0 -> Infinity Division_by_zero | |
707 | divx905 divide 0.01 0 -> Infinity Division_by_zero | |
708 | divx906 divide 0.1 0 -> Infinity Division_by_zero | |
709 | divx907 divide 1 0 -> Infinity Division_by_zero | |
710 | divx908 divide 1 0.0 -> Infinity Division_by_zero | |
711 | divx909 divide 10 0.0 -> Infinity Division_by_zero | |
712 | divx910 divide 1E+100 0.0 -> Infinity Division_by_zero | |
713 | divx911 divide 1E+1000 0 -> Infinity Division_by_zero | |
714 | ||
715 | divx921 divide -0.0001 0 -> -Infinity Division_by_zero | |
716 | divx922 divide -0.01 0 -> -Infinity Division_by_zero | |
717 | divx923 divide -0.1 0 -> -Infinity Division_by_zero | |
718 | divx924 divide -1 0 -> -Infinity Division_by_zero | |
719 | divx925 divide -1 0.0 -> -Infinity Division_by_zero | |
720 | divx926 divide -10 0.0 -> -Infinity Division_by_zero | |
721 | divx927 divide -1E+100 0.0 -> -Infinity Division_by_zero | |
722 | divx928 divide -1E+1000 0 -> -Infinity Division_by_zero | |
723 | ||
724 | divx931 divide 0.0001 -0 -> -Infinity Division_by_zero | |
725 | divx932 divide 0.01 -0 -> -Infinity Division_by_zero | |
726 | divx933 divide 0.1 -0 -> -Infinity Division_by_zero | |
727 | divx934 divide 1 -0 -> -Infinity Division_by_zero | |
728 | divx935 divide 1 -0.0 -> -Infinity Division_by_zero | |
729 | divx936 divide 10 -0.0 -> -Infinity Division_by_zero | |
730 | divx937 divide 1E+100 -0.0 -> -Infinity Division_by_zero | |
731 | divx938 divide 1E+1000 -0 -> -Infinity Division_by_zero | |
732 | ||
733 | divx941 divide -0.0001 -0 -> Infinity Division_by_zero | |
734 | divx942 divide -0.01 -0 -> Infinity Division_by_zero | |
735 | divx943 divide -0.1 -0 -> Infinity Division_by_zero | |
736 | divx944 divide -1 -0 -> Infinity Division_by_zero | |
737 | divx945 divide -1 -0.0 -> Infinity Division_by_zero | |
738 | divx946 divide -10 -0.0 -> Infinity Division_by_zero | |
739 | divx947 divide -1E+100 -0.0 -> Infinity Division_by_zero | |
740 | divx948 divide -1E+1000 -0 -> Infinity Division_by_zero | |
741 | ||
742 | -- overflow and underflow tests | |
743 | precision: 9 | |
744 | maxexponent: 999999999 | |
745 | minexponent: -999999999 | |
746 | divx951 divide 9E+999999999 +0.23456789012345E-0 -> Infinity Inexact Overflow Rounded | |
747 | divx952 divide +0.100 9E+999999999 -> 1.111111E-1000000001 Inexact Rounded Underflow Subnormal | |
748 | divx953 divide 9E-999999999 +9.100 -> 9.8901099E-1000000000 Inexact Rounded Underflow Subnormal | |
749 | divx954 divide -1.23456789 9E+999999999 -> -1.3717421E-1000000000 Subnormal | |
750 | divx955 divide -1.23456789012345E-0 9E+999999999 -> -1.3717421E-1000000000 Underflow Subnormal Rounded Inexact | |
751 | divx956 divide -1.23456789012345E-0 7E+999999999 -> -1.7636684E-1000000000 Inexact Rounded Underflow Subnormal | |
752 | divx957 divide 9E+999999999 -0.83456789012345E-0 -> -Infinity Inexact Overflow Rounded | |
753 | divx958 divide -0.100 9E+999999999 -> -1.111111E-1000000001 Subnormal Inexact Rounded Underflow | |
754 | divx959 divide 9E-999999999 -9.100 -> -9.8901099E-1000000000 Inexact Rounded Underflow Subnormal | |
755 | ||
756 | -- overflow and underflow (additional edge tests in multiply.decTest) | |
757 | -- 'subnormal' results now possible (all hard underflow or overflow in | |
758 | -- base arithemtic) | |
759 | divx960 divide 1e-600000000 1e+400000001 -> 1E-1000000001 Subnormal | |
760 | divx961 divide 1e-600000000 1e+400000002 -> 1E-1000000002 Subnormal | |
761 | divx962 divide 1e-600000000 1e+400000003 -> 1E-1000000003 Subnormal | |
762 | divx963 divide 1e-600000000 1e+400000004 -> 1E-1000000004 Subnormal | |
763 | divx964 divide 1e-600000000 1e+400000005 -> 1E-1000000005 Subnormal | |
764 | divx965 divide 1e-600000000 1e+400000006 -> 1E-1000000006 Subnormal | |
765 | divx966 divide 1e-600000000 1e+400000007 -> 1E-1000000007 Subnormal | |
766 | divx967 divide 1e-600000000 1e+400000008 -> 0E-1000000007 Underflow Subnormal Inexact Rounded | |
767 | divx968 divide 1e-600000000 1e+400000009 -> 0E-1000000007 Underflow Subnormal Inexact Rounded | |
768 | divx969 divide 1e-600000000 1e+400000010 -> 0E-1000000007 Underflow Subnormal Inexact Rounded | |
769 | -- [no equivalent of 'subnormal' for overflow] | |
770 | divx970 divide 1e+600000000 1e-400000001 -> Infinity Overflow Inexact Rounded | |
771 | divx971 divide 1e+600000000 1e-400000002 -> Infinity Overflow Inexact Rounded | |
772 | divx972 divide 1e+600000000 1e-400000003 -> Infinity Overflow Inexact Rounded | |
773 | divx973 divide 1e+600000000 1e-400000004 -> Infinity Overflow Inexact Rounded | |
774 | divx974 divide 1e+600000000 1e-400000005 -> Infinity Overflow Inexact Rounded | |
775 | divx975 divide 1e+600000000 1e-400000006 -> Infinity Overflow Inexact Rounded | |
776 | divx976 divide 1e+600000000 1e-400000007 -> Infinity Overflow Inexact Rounded | |
777 | divx977 divide 1e+600000000 1e-400000008 -> Infinity Overflow Inexact Rounded | |
778 | divx978 divide 1e+600000000 1e-400000009 -> Infinity Overflow Inexact Rounded | |
779 | divx979 divide 1e+600000000 1e-400000010 -> Infinity Overflow Inexact Rounded | |
780 | ||
781 | -- Sign after overflow and underflow | |
782 | divx980 divide 1e-600000000 1e+400000009 -> 0E-1000000007 Underflow Subnormal Inexact Rounded | |
783 | divx981 divide 1e-600000000 -1e+400000009 -> -0E-1000000007 Underflow Subnormal Inexact Rounded | |
784 | divx982 divide -1e-600000000 1e+400000009 -> -0E-1000000007 Underflow Subnormal Inexact Rounded | |
785 | divx983 divide -1e-600000000 -1e+400000009 -> 0E-1000000007 Underflow Subnormal Inexact Rounded | |
786 | divx984 divide 1e+600000000 1e-400000009 -> Infinity Overflow Inexact Rounded | |
787 | divx985 divide 1e+600000000 -1e-400000009 -> -Infinity Overflow Inexact Rounded | |
788 | divx986 divide -1e+600000000 1e-400000009 -> -Infinity Overflow Inexact Rounded | |
789 | divx987 divide -1e+600000000 -1e-400000009 -> Infinity Overflow Inexact Rounded | |
790 | ||
791 | -- Long operand overflow may be a different path | |
792 | precision: 3 | |
793 | divx990 divide 1000 9.999E-999999999 -> Infinity Inexact Overflow Rounded | |
794 | divx991 divide 1000 -9.999E-999999999 -> -Infinity Inexact Overflow Rounded | |
795 | divx992 divide 9.999E+999999999 0.01 -> Infinity Inexact Overflow Rounded | |
796 | divx993 divide -9.999E+999999999 0.01 -> -Infinity Inexact Overflow Rounded | |
797 | ||
798 | -- check for double-rounded subnormals | |
799 | precision: 5 | |
800 | maxexponent: 79 | |
801 | minexponent: -79 | |
802 | divx1001 divide 1.52444E-80 1 -> 1.524E-80 Inexact Rounded Subnormal Underflow | |
803 | divx1002 divide 1.52445E-80 1 -> 1.524E-80 Inexact Rounded Subnormal Underflow | |
804 | divx1003 divide 1.52446E-80 1 -> 1.524E-80 Inexact Rounded Subnormal Underflow | |
805 | ||
806 | -- a rounding problem in one implementation | |
807 | precision: 34 | |
808 | rounding: half_up | |
809 | maxExponent: 6144 | |
810 | minExponent: -6143 | |
811 | -- Unbounded answer to 40 digits: | |
812 | -- 1.465811965811965811965811965811965811966E+7000 | |
813 | divx1010 divide 343E6000 234E-1000 -> Infinity Overflow Inexact Rounded | |
814 | ||
815 | -- Null tests | |
816 | divx9998 divide 10 # -> NaN Invalid_operation | |
817 | divx9999 divide # 10 -> NaN Invalid_operation | |
818 |