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