summaryrefslogtreecommitdiffstats
path: root/Lib/test/decimaltestdata/divide.decTest
blob: 437d82a2f2c31f94f7497b179fdc0f56725e3427 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
------------------------------------------------------------------------
-- divide.decTest -- decimal division                                 --
-- Copyright (c) IBM Corporation, 1981, 2004.  All rights reserved.   --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases"     --
-- at http://www2.hursley.ibm.com/decimal for the description of      --
-- these testcases.                                                   --
--                                                                    --
-- These testcases are experimental ('beta' versions), and they       --
-- may contain errors.  They are offered on an as-is basis.  In       --
-- particular, achieving the same results as the tests here is not    --
-- a guarantee that an implementation complies with any Standard      --
-- or specification.  The tests are not exhaustive.                   --
--                                                                    --
-- Please send comments, suggestions, and corrections to the author:  --
--   Mike Cowlishaw, IBM Fellow                                       --
--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
--   mfc@uk.ibm.com                                                   --
------------------------------------------------------------------------
version: 2.39

extended:    1
precision:   9
rounding:    half_up
maxExponent: 384
minexponent: -383

-- sanity checks
divx001 divide  1     1    ->  1
divx002 divide  2     1    ->  2
divx003 divide  1     2    ->  0.5
divx004 divide  2     2    ->  1
divx005 divide  0     1    ->  0
divx006 divide  0     2    ->  0
divx007 divide  1     3    ->  0.333333333 Inexact Rounded
divx008 divide  2     3    ->  0.666666667 Inexact Rounded
divx009 divide  3     3    ->  1

divx010 divide  2.4   1    ->  2.4
divx011 divide  2.4   -1   ->  -2.4
divx012 divide  -2.4  1    ->  -2.4
divx013 divide  -2.4  -1   ->  2.4
divx014 divide  2.40  1    ->  2.40
divx015 divide  2.400 1    ->  2.400
divx016 divide  2.4   2    ->  1.2
divx017 divide  2.400 2    ->  1.200
divx018 divide  2.    2    ->  1
divx019 divide  20    20   ->  1

divx020 divide  187   187  ->  1
divx021 divide  5     2    ->  2.5
divx022 divide  5     2.0    ->  2.5
divx023 divide  5     2.000  ->  2.5
divx024 divide  5     0.20   ->  25
divx025 divide  5     0.200  ->  25
divx026 divide  10    1      ->  10
divx027 divide  100   1      ->  100
divx028 divide  1000  1      ->  1000
divx029 divide  1000  100    ->  10

divx030 divide  1     2      ->  0.5
divx031 divide  1     4      ->  0.25
divx032 divide  1     8      ->  0.125
divx033 divide  1     16     ->  0.0625
divx034 divide  1     32     ->  0.03125
divx035 divide  1     64     ->  0.015625
divx040 divide  1    -2      ->  -0.5
divx041 divide  1    -4      ->  -0.25
divx042 divide  1    -8      ->  -0.125
divx043 divide  1    -16     ->  -0.0625
divx044 divide  1    -32     ->  -0.03125
divx045 divide  1    -64     ->  -0.015625
divx050 divide -1     2      ->  -0.5
divx051 divide -1     4      ->  -0.25
divx052 divide -1     8      ->  -0.125
divx053 divide -1     16     ->  -0.0625
divx054 divide -1     32     ->  -0.03125
divx055 divide -1     64     ->  -0.015625
divx060 divide -1    -2      ->  0.5
divx061 divide -1    -4      ->  0.25
divx062 divide -1    -8      ->  0.125
divx063 divide -1    -16     ->  0.0625
divx064 divide -1    -32     ->  0.03125
divx065 divide -1    -64     ->  0.015625

divx070 divide  999999999        1    ->  999999999
divx071 divide  999999999.4      1    ->  999999999 Inexact Rounded
divx072 divide  999999999.5      1    ->  1.00000000E+9 Inexact Rounded
divx073 divide  999999999.9      1    ->  1.00000000E+9 Inexact Rounded
divx074 divide  999999999.999    1    ->  1.00000000E+9 Inexact Rounded
precision: 6
divx080 divide  999999999     1  ->  1.00000E+9 Inexact Rounded
divx081 divide  99999999      1  ->  1.00000E+8 Inexact Rounded
divx082 divide  9999999       1  ->  1.00000E+7 Inexact Rounded
divx083 divide  999999        1  ->  999999
divx084 divide  99999         1  ->  99999
divx085 divide  9999          1  ->  9999
divx086 divide  999           1  ->  999
divx087 divide  99            1  ->  99
divx088 divide  9             1  ->  9

precision: 9
divx090 divide  0.            1    ->  0
divx091 divide  .0            1    ->  0.0
divx092 divide  0.00          1    ->  0.00
divx093 divide  0.00E+9       1    ->  0E+7
divx094 divide  0.0000E-50    1    ->  0E-54

divx095 divide  1            1E-8  ->  1E+8
divx096 divide  1            1E-9  ->  1E+9
divx097 divide  1            1E-10 ->  1E+10
divx098 divide  1            1E-11 ->  1E+11
divx099 divide  1            1E-12 ->  1E+12

divx100 divide  1  1   -> 1
divx101 divide  1  2   -> 0.5
divx102 divide  1  3   -> 0.333333333 Inexact Rounded
divx103 divide  1  4   -> 0.25
divx104 divide  1  5   -> 0.2
divx105 divide  1  6   -> 0.166666667 Inexact Rounded
divx106 divide  1  7   -> 0.142857143 Inexact Rounded
divx107 divide  1  8   -> 0.125
divx108 divide  1  9   -> 0.111111111 Inexact Rounded
divx109 divide  1  10  -> 0.1
divx110 divide  1  1   -> 1
divx111 divide  2  1   -> 2
divx112 divide  3  1   -> 3
divx113 divide  4  1   -> 4
divx114 divide  5  1   -> 5
divx115 divide  6  1   -> 6
divx116 divide  7  1   -> 7
divx117 divide  8  1   -> 8
divx118 divide  9  1   -> 9
divx119 divide  10 1   -> 10

divx120 divide  3E+1 0.001  -> 3E+4
divx121 divide  2.200 2     -> 1.100

divx130 divide  12345  4.999  ->  2469.49390 Inexact Rounded
divx131 divide  12345  4.99   ->  2473.94790 Inexact Rounded
divx132 divide  12345  4.9    ->  2519.38776 Inexact Rounded
divx133 divide  12345  5      ->  2469
divx134 divide  12345  5.1    ->  2420.58824 Inexact Rounded
divx135 divide  12345  5.01   ->  2464.07186 Inexact Rounded
divx136 divide  12345  5.001  ->  2468.50630 Inexact Rounded

precision:   9
maxexponent: 999999999
minexponent: -999999999

-- test possibly imprecise results
divx220 divide 391   597 ->  0.654941374 Inexact Rounded
divx221 divide 391  -597 -> -0.654941374 Inexact Rounded
divx222 divide -391  597 -> -0.654941374 Inexact Rounded
divx223 divide -391 -597 ->  0.654941374 Inexact Rounded

-- test some cases that are close to exponent overflow
maxexponent: 999999999
minexponent: -999999999
divx270 divide 1 1e999999999    -> 1E-999999999
divx271 divide 1 0.9e999999999  -> 1.11111111E-999999999 Inexact Rounded
divx272 divide 1 0.99e999999999 -> 1.01010101E-999999999 Inexact Rounded
divx273 divide 1 0.999999999e999999999 -> 1.00000000E-999999999 Inexact Rounded
divx274 divide 9e999999999    1 -> 9E+999999999
divx275 divide 9.9e999999999  1 -> 9.9E+999999999
divx276 divide 9.99e999999999 1 -> 9.99E+999999999
divx277 divide 9.99999999e999999999 1 -> 9.99999999E+999999999

divx280 divide 0.1 9e-999999999   -> 1.11111111E+999999997 Inexact Rounded
divx281 divide 0.1 99e-999999999  -> 1.01010101E+999999996 Inexact Rounded
divx282 divide 0.1 999e-999999999 -> 1.00100100E+999999995 Inexact Rounded

divx283 divide 0.1 9e-999999998     -> 1.11111111E+999999996 Inexact Rounded
divx284 divide 0.1 99e-999999998    -> 1.01010101E+999999995 Inexact Rounded
divx285 divide 0.1 999e-999999998   -> 1.00100100E+999999994 Inexact Rounded
divx286 divide 0.1 999e-999999997   -> 1.00100100E+999999993 Inexact Rounded
divx287 divide 0.1 9999e-999999997  -> 1.00010001E+999999992 Inexact Rounded
divx288 divide 0.1 99999e-999999997 -> 1.00001000E+999999991 Inexact Rounded

-- Divide into 0 tests

divx301 divide    0    7     -> 0
divx302 divide    0    7E-5  -> 0E+5
divx303 divide    0    7E-1  -> 0E+1
divx304 divide    0    7E+1  -> 0.0
divx305 divide    0    7E+5  -> 0.00000
divx306 divide    0    7E+6  -> 0.000000
divx307 divide    0    7E+7  -> 0E-7
divx308 divide    0   70E-5  -> 0E+5
divx309 divide    0   70E-1  -> 0E+1
divx310 divide    0   70E+0  -> 0
divx311 divide    0   70E+1  -> 0.0
divx312 divide    0   70E+5  -> 0.00000
divx313 divide    0   70E+6  -> 0.000000
divx314 divide    0   70E+7  -> 0E-7
divx315 divide    0  700E-5  -> 0E+5
divx316 divide    0  700E-1  -> 0E+1
divx317 divide    0  700E+0  -> 0
divx318 divide    0  700E+1  -> 0.0
divx319 divide    0  700E+5  -> 0.00000
divx320 divide    0  700E+6  -> 0.000000
divx321 divide    0  700E+7  -> 0E-7
divx322 divide    0  700E+77 -> 0E-77

divx331 divide 0E-3    7E-5  -> 0E+2
divx332 divide 0E-3    7E-1  -> 0.00
divx333 divide 0E-3    7E+1  -> 0.0000
divx334 divide 0E-3    7E+5  -> 0E-8
divx335 divide 0E-1    7E-5  -> 0E+4
divx336 divide 0E-1    7E-1  -> 0
divx337 divide 0E-1    7E+1  -> 0.00
divx338 divide 0E-1    7E+5  -> 0.000000
divx339 divide 0E+1    7E-5  -> 0E+6
divx340 divide 0E+1    7E-1  -> 0E+2
divx341 divide 0E+1    7E+1  -> 0
divx342 divide 0E+1    7E+5  -> 0.0000
divx343 divide 0E+3    7E-5  -> 0E+8
divx344 divide 0E+3    7E-1  -> 0E+4
divx345 divide 0E+3    7E+1  -> 0E+2
divx346 divide 0E+3    7E+5  -> 0.00

maxexponent: 92
minexponent: -92
precision:    7
divx351 divide 0E-92   7E-1  -> 0E-91
divx352 divide 0E-92   7E+1  -> 0E-93
divx353 divide 0E-92   7E+5  -> 0E-97
divx354 divide 0E-92   7E+6  -> 0E-98
divx355 divide 0E-92   7E+7  -> 0E-98 Clamped
divx356 divide 0E-92 777E-1  -> 0E-91
divx357 divide 0E-92 777E+1  -> 0E-93
divx358 divide 0E-92 777E+3  -> 0E-95
divx359 divide 0E-92 777E+4  -> 0E-96
divx360 divide 0E-92 777E+5  -> 0E-97
divx361 divide 0E-92 777E+6  -> 0E-98
divx362 divide 0E-92 777E+7  -> 0E-98 Clamped
divx363 divide 0E-92   7E+92 -> 0E-98 Clamped

divx371 divide 0E-92 700E-1  -> 0E-91
divx372 divide 0E-92 700E+1  -> 0E-93
divx373 divide 0E-92 700E+3  -> 0E-95
divx374 divide 0E-92 700E+4  -> 0E-96
divx375 divide 0E-92 700E+5  -> 0E-97
divx376 divide 0E-92 700E+6  -> 0E-98
divx377 divide 0E-92 700E+7  -> 0E-98 Clamped

divx381 divide 0E+92   7E+1  -> 0E+91
divx382 divide 0E+92   7E+0  -> 0E+92
divx383 divide 0E+92   7E-1  -> 0E+92 Clamped
divx384 divide 0E+90 777E+1  -> 0E+89
divx385 divide 0E+90 777E-1  -> 0E+91
divx386 divide 0E+90 777E-2  -> 0E+92
divx387 divide 0E+90 777E-3  -> 0E+92 Clamped
divx388 divide 0E+90 777E-4  -> 0E+92 Clamped

divx391 divide 0E+90 700E+1  -> 0E+89
divx392 divide 0E+90 700E-1  -> 0E+91
divx393 divide 0E+90 700E-2  -> 0E+92
divx394 divide 0E+90 700E-3  -> 0E+92 Clamped
divx395 divide 0E+90 700E-4  -> 0E+92 Clamped

-- input rounding checks
maxexponent: 999
minexponent: -999
precision: 9
divx401 divide 12345678000 1 -> 1.23456780E+10 Rounded
divx402 divide 1 12345678000 -> 8.10000066E-11 Inexact Rounded
divx403 divide 1234567800  1 -> 1.23456780E+9  Rounded
divx404 divide 1 1234567800  -> 8.10000066E-10 Inexact Rounded
divx405 divide 1234567890  1 -> 1.23456789E+9  Rounded
divx406 divide 1 1234567890  -> 8.10000007E-10 Inexact Rounded
divx407 divide 1234567891  1 -> 1.23456789E+9  Inexact Rounded
divx408 divide 1 1234567891  -> 8.10000007E-10 Inexact Rounded
divx409 divide 12345678901 1 -> 1.23456789E+10 Inexact Rounded
divx410 divide 1 12345678901 -> 8.10000007E-11 Inexact Rounded
divx411 divide 1234567896  1 -> 1.23456790E+9  Inexact Rounded
divx412 divide 1 1234567896  -> 8.10000003E-10 Inexact Rounded
divx413 divide 1 1234567897  -> 8.10000003E-10 Inexact Rounded
divx414 divide 1 1234567898  -> 8.10000002E-10 Inexact Rounded
divx415 divide 1 1234567899  -> 8.10000001E-10 Inexact Rounded
divx416 divide 1 1234567900  -> 8.10000001E-10 Inexact Rounded
divx417 divide 1 1234567901  -> 8.10000000E-10 Inexact Rounded
divx418 divide 1 1234567902  -> 8.09999999E-10 Inexact Rounded
-- some longies
divx421 divide 1234567896.000000000000  1 -> 1.23456790E+9  Inexact Rounded
divx422 divide 1 1234567896.000000000000  -> 8.10000003E-10 Inexact Rounded
divx423 divide 1234567896.000000000001  1 -> 1.23456790E+9  Inexact Rounded
divx424 divide 1 1234567896.000000000001  -> 8.10000003E-10 Inexact Rounded
divx425 divide 1234567896.000000000000000000000000000000000000000009  1 -> 1.23456790E+9  Inexact Rounded
divx426 divide 1 1234567896.000000000000000000000000000000000000000009  -> 8.10000003E-10 Inexact Rounded
divx427 divide 1234567897.900010000000000000000000000000000000000009  1 -> 1.23456790E+9  Inexact Rounded
divx428 divide 1 1234567897.900010000000000000000000000000000000000009  -> 8.10000002E-10 Inexact Rounded

precision: 15
-- still checking...
divx441 divide 12345678000 1 -> 12345678000
divx442 divide 1 12345678000 -> 8.10000066420005E-11 Inexact Rounded
divx443 divide 1234567800  1 -> 1234567800
divx444 divide 1 1234567800  -> 8.10000066420005E-10 Inexact Rounded
divx445 divide 1234567890  1 -> 1234567890
divx446 divide 1 1234567890  -> 8.10000007371000E-10 Inexact Rounded
divx447 divide 1234567891  1 -> 1234567891
divx448 divide 1 1234567891  -> 8.10000006714900E-10 Inexact Rounded
divx449 divide 12345678901 1 -> 12345678901
divx450 divide 1 12345678901 -> 8.10000007305390E-11 Inexact Rounded
divx451 divide 1234567896  1 -> 1234567896
divx452 divide 1 1234567896  -> 8.10000003434400E-10 Inexact Rounded

-- high-lows
divx453 divide 1e+1   1    ->   1E+1
divx454 divide 1e+1   1.0  ->   1E+1
divx455 divide 1e+1   1.00 ->   1E+1
divx456 divide 1e+2   2    ->   5E+1
divx457 divide 1e+2   2.0  ->   5E+1
divx458 divide 1e+2   2.00 ->   5E+1

-- some from IEEE discussions
divx460 divide 3e0      2e0     -> 1.5
divx461 divide 30e-1    2e0     -> 1.5
divx462 divide 300e-2   2e0     -> 1.50
divx464 divide 3000e-3  2e0     -> 1.500
divx465 divide 3e0      20e-1   -> 1.5
divx466 divide 30e-1    20e-1   -> 1.5
divx467 divide 300e-2   20e-1   -> 1.5
divx468 divide 3000e-3  20e-1   -> 1.50
divx469 divide 3e0      200e-2  -> 1.5
divx470 divide 30e-1    200e-2  -> 1.5
divx471 divide 300e-2   200e-2  -> 1.5
divx472 divide 3000e-3  200e-2  -> 1.5
divx473 divide 3e0      2000e-3 -> 1.5
divx474 divide 30e-1    2000e-3 -> 1.5
divx475 divide 300e-2   2000e-3 -> 1.5
divx476 divide 3000e-3  2000e-3 -> 1.5

-- some reciprocals
divx480 divide 1        1.0E+33 -> 1E-33
divx481 divide 1        10E+33  -> 1E-34
divx482 divide 1        1.0E-33 -> 1E+33
divx483 divide 1        10E-33  -> 1E+32

-- RMS discussion table
maxexponent:  96
minexponent: -95
precision:     7

divx484 divide 0e5     1e3 ->   0E+2
divx485 divide 0e5     2e3 ->   0E+2
divx486 divide 0e5    10e2 ->   0E+3
divx487 divide 0e5    20e2 ->   0E+3
divx488 divide 0e5   100e1 ->   0E+4
divx489 divide 0e5   200e1 ->   0E+4

divx491 divide 1e5     1e3 ->   1E+2
divx492 divide 1e5     2e3 ->   5E+1
divx493 divide 1e5    10e2 ->   1E+2
divx494 divide 1e5    20e2 ->   5E+1
divx495 divide 1e5   100e1 ->   1E+2
divx496 divide 1e5   200e1 ->   5E+1

-- tryzeros cases
precision:   7
rounding:    half_up
maxExponent: 92
minexponent: -92
divx497  divide  0E+86 1000E-13  -> 0E+92 Clamped
divx498  divide  0E-98 1000E+13  -> 0E-98 Clamped

precision:   9
rounding:    half_up
maxExponent: 999
minexponent: -999

-- focus on trailing zeros issues
precision:   9
divx500 divide  1      9.9    ->  0.101010101  Inexact Rounded
precision:   8
divx501 divide  1      9.9    ->  0.10101010   Inexact Rounded
precision:   7
divx502 divide  1      9.9    ->  0.1010101    Inexact Rounded
precision:   6
divx503 divide  1      9.9    ->  0.101010     Inexact Rounded
precision:   9

divx511 divide 1         2    -> 0.5
divx512 divide 1.0       2    -> 0.5
divx513 divide 1.00      2    -> 0.50
divx514 divide 1.000     2    -> 0.500
divx515 divide 1.0000    2    -> 0.5000
divx516 divide 1.00000   2    -> 0.50000
divx517 divide 1.000000  2    -> 0.500000
divx518 divide 1.0000000 2    -> 0.5000000
divx519 divide 1.00      2.00 -> 0.5

divx521 divide 2    1         -> 2
divx522 divide 2    1.0       -> 2
divx523 divide 2    1.00      -> 2
divx524 divide 2    1.000     -> 2
divx525 divide 2    1.0000    -> 2
divx526 divide 2    1.00000   -> 2
divx527 divide 2    1.000000  -> 2
divx528 divide 2    1.0000000 -> 2
divx529 divide 2.00 1.00      -> 2

divx530 divide  2.40   2      ->  1.20
divx531 divide  2.40   4      ->  0.60
divx532 divide  2.40  10      ->  0.24
divx533 divide  2.40   2.0    ->  1.2
divx534 divide  2.40   4.0    ->  0.6
divx535 divide  2.40  10.0    ->  0.24
divx536 divide  2.40   2.00   ->  1.2
divx537 divide  2.40   4.00   ->  0.6
divx538 divide  2.40  10.00   ->  0.24
divx539 divide  0.9    0.1    ->  9
divx540 divide  0.9    0.01   ->  9E+1
divx541 divide  0.9    0.001  ->  9E+2
divx542 divide  5      2      ->  2.5
divx543 divide  5      2.0    ->  2.5
divx544 divide  5      2.00   ->  2.5
divx545 divide  5      20     ->  0.25
divx546 divide  5      20.0   ->  0.25
divx547 divide  2.400  2      ->  1.200
divx548 divide  2.400  2.0    ->  1.20
divx549 divide  2.400  2.400  ->  1

divx550 divide  240    1      ->  240
divx551 divide  240    10     ->  24
divx552 divide  240    100    ->  2.4
divx553 divide  240    1000   ->  0.24
divx554 divide  2400   1      ->  2400
divx555 divide  2400   10     ->  240
divx556 divide  2400   100    ->  24
divx557 divide  2400   1000   ->  2.4

-- +ve exponent
precision: 5
divx570 divide  2.4E+6     2  ->  1.2E+6
divx571 divide  2.40E+6    2  ->  1.20E+6
divx572 divide  2.400E+6   2  ->  1.200E+6
divx573 divide  2.4000E+6  2  ->  1.2000E+6
divx574 divide  24E+5      2  ->  1.2E+6
divx575 divide  240E+4     2  ->  1.20E+6
divx576 divide  2400E+3    2  ->  1.200E+6
divx577 divide  24000E+2   2  ->  1.2000E+6
precision: 6
divx580 divide  2.4E+6     2  ->  1.2E+6
divx581 divide  2.40E+6    2  ->  1.20E+6
divx582 divide  2.400E+6   2  ->  1.200E+6
divx583 divide  2.4000E+6  2  ->  1.2000E+6
divx584 divide  24E+5      2  ->  1.2E+6
divx585 divide  240E+4     2  ->  1.20E+6
divx586 divide  2400E+3    2  ->  1.200E+6
divx587 divide  24000E+2   2  ->  1.2000E+6
precision: 7
divx590 divide  2.4E+6     2  ->  1.2E+6
divx591 divide  2.40E+6    2  ->  1.20E+6
divx592 divide  2.400E+6   2  ->  1.200E+6
divx593 divide  2.4000E+6  2  ->  1.2000E+6
divx594 divide  24E+5      2  ->  1.2E+6
divx595 divide  240E+4     2  ->  1.20E+6
divx596 divide  2400E+3    2  ->  1.200E+6
divx597 divide  24000E+2   2  ->  1.2000E+6
precision:   9
divx600 divide  2.4E+9     2  ->  1.2E+9
divx601 divide  2.40E+9    2  ->  1.20E+9
divx602 divide  2.400E+9   2  ->  1.200E+9
divx603 divide  2.4000E+9  2  ->  1.2000E+9
divx604 divide  24E+8      2  ->  1.2E+9
divx605 divide  240E+7     2  ->  1.20E+9
divx606 divide  2400E+6    2  ->  1.200E+9
divx607 divide  24000E+5   2  ->  1.2000E+9

-- long operand triangle
precision: 33
divx610 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8131097703792 Inexact Rounded
precision: 32
divx611 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.813109770379  Inexact Rounded
precision: 31
divx612 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.81310977038   Inexact Rounded
precision: 30
divx613 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8131097704    Inexact Rounded
precision: 29
divx614 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.813109770     Inexact Rounded
precision: 28
divx615 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.81310977      Inexact Rounded
precision: 27
divx616 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8131098       Inexact Rounded
precision: 26
divx617 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.813110        Inexact Rounded
precision: 25
divx618 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.81311         Inexact Rounded
precision: 24
divx619 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8131          Inexact Rounded
precision: 23
divx620 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.813           Inexact Rounded
precision: 22
divx621 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.81            Inexact Rounded
precision: 21
divx622 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817797.8             Inexact Rounded
precision: 20
divx623 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -41011408883796817798               Inexact Rounded
precision: 19
divx624 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101140888379681780E+19         Inexact Rounded
precision: 18
divx625 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114088837968178E+19         Inexact Rounded
precision: 17
divx626 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011408883796818E+19         Inexact Rounded
precision: 16
divx627 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101140888379682E+19         Inexact Rounded
precision: 15
divx628 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114088837968E+19         Inexact Rounded
precision: 14
divx629 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011408883797E+19         Inexact Rounded
precision: 13
divx630 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101140888380E+19         Inexact Rounded
precision: 12
divx631 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114088838E+19         Inexact Rounded
precision: 11
divx632 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011408884E+19         Inexact Rounded
precision: 10
divx633 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101140888E+19         Inexact Rounded
precision:  9
divx634 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114089E+19         Inexact Rounded
precision:  8
divx635 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011409E+19         Inexact Rounded
precision:  7
divx636 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101141E+19         Inexact Rounded
precision:  6
divx637 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10114E+19         Inexact Rounded
precision:  5
divx638 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1011E+19         Inexact Rounded
precision:  4
divx639 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.101E+19         Inexact Rounded
precision:  3
divx640 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.10E+19         Inexact Rounded
precision:  2
divx641 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4.1E+19         Inexact Rounded
precision:  1
divx642 divide -3374988581607586061255542201048 82293895124.90045271504836568681 -> -4E+19         Inexact Rounded

-- more zeros, etc.
precision:   16
rounding:    half_up
maxExponent: 384
minExponent: -383

divx731 divide 5.00 1E-3    -> 5.00E+3
divx732 divide 00.00 0.000  -> NaN Division_undefined
divx733 divide 00.00 0E-3   -> NaN Division_undefined
divx734 divide  0    -0     -> NaN Division_undefined
divx735 divide -0     0     -> NaN Division_undefined
divx736 divide -0    -0     -> NaN Division_undefined

divx741 divide  0    -1     -> -0
divx742 divide -0    -1     ->  0
divx743 divide  0     1     ->  0
divx744 divide -0     1     -> -0
divx745 divide -1     0     -> -Infinity Division_by_zero
divx746 divide -1    -0     ->  Infinity Division_by_zero
divx747 divide  1     0     ->  Infinity Division_by_zero
divx748 divide  1    -0     -> -Infinity Division_by_zero

divx751 divide  0.0  -1     -> -0.0
divx752 divide -0.0  -1     ->  0.0
divx753 divide  0.0   1     ->  0.0
divx754 divide -0.0   1     -> -0.0
divx755 divide -1.0   0     -> -Infinity Division_by_zero
divx756 divide -1.0  -0     ->  Infinity Division_by_zero
divx757 divide  1.0   0     ->  Infinity Division_by_zero
divx758 divide  1.0  -0     -> -Infinity Division_by_zero

divx761 divide  0    -1.0   -> -0E+1
divx762 divide -0    -1.0   ->  0E+1
divx763 divide  0     1.0   ->  0E+1
divx764 divide -0     1.0   -> -0E+1
divx765 divide -1     0.0   -> -Infinity Division_by_zero
divx766 divide -1    -0.0   ->  Infinity Division_by_zero
divx767 divide  1     0.0   ->  Infinity Division_by_zero
divx768 divide  1    -0.0   -> -Infinity Division_by_zero

divx771 divide  0.0  -1.0   -> -0
divx772 divide -0.0  -1.0   ->  0
divx773 divide  0.0   1.0   ->  0
divx774 divide -0.0   1.0   -> -0
divx775 divide -1.0   0.0   -> -Infinity Division_by_zero
divx776 divide -1.0  -0.0   ->  Infinity Division_by_zero
divx777 divide  1.0   0.0   ->  Infinity Division_by_zero
divx778 divide  1.0  -0.0   -> -Infinity Division_by_zero

-- Specials
divx780 divide  Inf  -Inf   ->  NaN Invalid_operation
divx781 divide  Inf  -1000  -> -Infinity
divx782 divide  Inf  -1     -> -Infinity
divx783 divide  Inf  -0     -> -Infinity
divx784 divide  Inf   0     ->  Infinity
divx785 divide  Inf   1     ->  Infinity
divx786 divide  Inf   1000  ->  Infinity
divx787 divide  Inf   Inf   ->  NaN Invalid_operation
divx788 divide -1000  Inf   -> -0E-398 Clamped
divx789 divide -Inf   Inf   ->  NaN Invalid_operation
divx790 divide -1     Inf   -> -0E-398 Clamped
divx791 divide -0     Inf   -> -0E-398 Clamped
divx792 divide  0     Inf   ->  0E-398 Clamped
divx793 divide  1     Inf   ->  0E-398 Clamped
divx794 divide  1000  Inf   ->  0E-398 Clamped
divx795 divide  Inf   Inf   ->  NaN Invalid_operation

divx800 divide -Inf  -Inf   ->  NaN Invalid_operation
divx801 divide -Inf  -1000  ->  Infinity
divx802 divide -Inf  -1     ->  Infinity
divx803 divide -Inf  -0     ->  Infinity
divx804 divide -Inf   0     -> -Infinity
divx805 divide -Inf   1     -> -Infinity
divx806 divide -Inf   1000  -> -Infinity
divx807 divide -Inf   Inf   ->  NaN Invalid_operation
divx808 divide -1000  Inf   -> -0E-398 Clamped
divx809 divide -Inf  -Inf   ->  NaN Invalid_operation
divx810 divide -1    -Inf   ->  0E-398 Clamped
divx811 divide -0    -Inf   ->  0E-398 Clamped
divx812 divide  0    -Inf   -> -0E-398 Clamped
divx813 divide  1    -Inf   -> -0E-398 Clamped
divx814 divide  1000 -Inf   -> -0E-398 Clamped
divx815 divide  Inf  -Inf   ->  NaN Invalid_operation

divx821 divide  NaN -Inf    ->  NaN
divx822 divide  NaN -1000   ->  NaN
divx823 divide  NaN -1      ->  NaN
divx824 divide  NaN -0      ->  NaN
divx825 divide  NaN  0      ->  NaN
divx826 divide  NaN  1      ->  NaN
divx827 divide  NaN  1000   ->  NaN
divx828 divide  NaN  Inf    ->  NaN
divx829 divide  NaN  NaN    ->  NaN
divx830 divide -Inf  NaN    ->  NaN
divx831 divide -1000 NaN    ->  NaN
divx832 divide -1    NaN    ->  NaN
divx833 divide -0    NaN    ->  NaN
divx834 divide  0    NaN    ->  NaN
divx835 divide  1    NaN    ->  NaN
divx836 divide  1000 NaN    ->  NaN
divx837 divide  Inf  NaN    ->  NaN

divx841 divide  sNaN -Inf   ->  NaN  Invalid_operation
divx842 divide  sNaN -1000  ->  NaN  Invalid_operation
divx843 divide  sNaN -1     ->  NaN  Invalid_operation
divx844 divide  sNaN -0     ->  NaN  Invalid_operation
divx845 divide  sNaN  0     ->  NaN  Invalid_operation
divx846 divide  sNaN  1     ->  NaN  Invalid_operation
divx847 divide  sNaN  1000  ->  NaN  Invalid_operation
divx848 divide  sNaN  NaN   ->  NaN  Invalid_operation
divx849 divide  sNaN sNaN   ->  NaN  Invalid_operation
divx850 divide  NaN  sNaN   ->  NaN  Invalid_operation
divx851 divide -Inf  sNaN   ->  NaN  Invalid_operation
divx852 divide -1000 sNaN   ->  NaN  Invalid_operation
divx853 divide -1    sNaN   ->  NaN  Invalid_operation
divx854 divide -0    sNaN   ->  NaN  Invalid_operation
divx855 divide  0    sNaN   ->  NaN  Invalid_operation
divx856 divide  1    sNaN   ->  NaN  Invalid_operation
divx857 divide  1000 sNaN   ->  NaN  Invalid_operation
divx858 divide  Inf  sNaN   ->  NaN  Invalid_operation
divx859 divide  NaN  sNaN   ->  NaN  Invalid_operation

-- propagating NaNs
divx861 divide  NaN9 -Inf   ->  NaN9
divx862 divide  NaN8  1000  ->  NaN8
divx863 divide  NaN7  Inf   ->  NaN7
divx864 divide  NaN6  NaN5  ->  NaN6
divx865 divide -Inf   NaN4  ->  NaN4
divx866 divide -1000  NaN3  ->  NaN3
divx867 divide  Inf   NaN2  ->  NaN2

divx871 divide  sNaN99 -Inf    ->  NaN99 Invalid_operation
divx872 divide  sNaN98 -1      ->  NaN98 Invalid_operation
divx873 divide  sNaN97  NaN    ->  NaN97 Invalid_operation
divx874 divide  sNaN96 sNaN94  ->  NaN96 Invalid_operation
divx875 divide  NaN95  sNaN93  ->  NaN93 Invalid_operation
divx876 divide -Inf    sNaN92  ->  NaN92 Invalid_operation
divx877 divide  0      sNaN91  ->  NaN91 Invalid_operation
divx878 divide  Inf    sNaN90  ->  NaN90 Invalid_operation
divx879 divide  NaN    sNaN89  ->  NaN89 Invalid_operation

divx881 divide  -NaN9  -Inf   ->  -NaN9
divx882 divide  -NaN8   1000  ->  -NaN8
divx883 divide  -NaN7   Inf   ->  -NaN7
divx884 divide  -NaN6  -NaN5  ->  -NaN6
divx885 divide  -Inf   -NaN4  ->  -NaN4
divx886 divide  -1000  -NaN3  ->  -NaN3
divx887 divide   Inf   -NaN2  ->  -NaN2

divx891 divide -sNaN99 -Inf    -> -NaN99 Invalid_operation
divx892 divide -sNaN98 -1      -> -NaN98 Invalid_operation
divx893 divide -sNaN97  NaN    -> -NaN97 Invalid_operation
divx894 divide -sNaN96 -sNaN94 -> -NaN96 Invalid_operation
divx895 divide -NaN95  -sNaN93 -> -NaN93 Invalid_operation
divx896 divide -Inf    -sNaN92 -> -NaN92 Invalid_operation
divx897 divide  0      -sNaN91 -> -NaN91 Invalid_operation
divx898 divide  Inf    -sNaN90 -> -NaN90 Invalid_operation
divx899 divide -NaN    -sNaN89 -> -NaN89 Invalid_operation

maxexponent: 999999999
minexponent: -999999999

-- Various flavours of divide by 0
divx901 divide    0       0   ->  NaN Division_undefined
divx902 divide    0.0E5   0   ->  NaN Division_undefined
divx903 divide    0.000   0   ->  NaN Division_undefined
divx904 divide    0.0001  0   ->  Infinity Division_by_zero
divx905 divide    0.01    0   ->  Infinity Division_by_zero
divx906 divide    0.1     0   ->  Infinity Division_by_zero
divx907 divide    1       0   ->  Infinity Division_by_zero
divx908 divide    1       0.0 ->  Infinity Division_by_zero
divx909 divide   10       0.0 ->  Infinity Division_by_zero
divx910 divide   1E+100   0.0 ->  Infinity Division_by_zero
divx911 divide   1E+1000  0   ->  Infinity Division_by_zero

divx921 divide   -0.0001  0   -> -Infinity Division_by_zero
divx922 divide   -0.01    0   -> -Infinity Division_by_zero
divx923 divide   -0.1     0   -> -Infinity Division_by_zero
divx924 divide   -1       0   -> -Infinity Division_by_zero
divx925 divide   -1       0.0 -> -Infinity Division_by_zero
divx926 divide  -10       0.0 -> -Infinity Division_by_zero
divx927 divide  -1E+100   0.0 -> -Infinity Division_by_zero
divx928 divide  -1E+1000  0   -> -Infinity Division_by_zero

divx931 divide    0.0001 -0   -> -Infinity Division_by_zero
divx932 divide    0.01   -0   -> -Infinity Division_by_zero
divx933 divide    0.1    -0   -> -Infinity Division_by_zero
divx934 divide    1      -0   -> -Infinity Division_by_zero
divx935 divide    1      -0.0 -> -Infinity Division_by_zero
divx936 divide   10      -0.0 -> -Infinity Division_by_zero
divx937 divide   1E+100  -0.0 -> -Infinity Division_by_zero
divx938 divide   1E+1000 -0   -> -Infinity Division_by_zero

divx941 divide   -0.0001 -0   ->  Infinity Division_by_zero
divx942 divide   -0.01   -0   ->  Infinity Division_by_zero
divx943 divide   -0.1    -0   ->  Infinity Division_by_zero
divx944 divide   -1      -0   ->  Infinity Division_by_zero
divx945 divide   -1      -0.0 ->  Infinity Division_by_zero
divx946 divide  -10      -0.0 ->  Infinity Division_by_zero
divx947 divide  -1E+100  -0.0 ->  Infinity Division_by_zero
divx948 divide  -1E+1000 -0   ->  Infinity Division_by_zero

-- overflow and underflow tests
precision: 9
maxexponent: 999999999
minexponent: -999999999
divx951 divide 9E+999999999 +0.23456789012345E-0 -> Infinity Inexact Overflow Rounded
divx952 divide +0.100 9E+999999999 -> 1.111111E-1000000001 Inexact Rounded Underflow Subnormal
divx953 divide 9E-999999999 +9.100 -> 9.8901099E-1000000000 Inexact Rounded Underflow Subnormal
divx954 divide -1.23456789          9E+999999999 -> -1.3717421E-1000000000 Subnormal
divx955 divide -1.23456789012345E-0 9E+999999999 -> -1.3717421E-1000000000 Underflow Subnormal Rounded Inexact
divx956 divide -1.23456789012345E-0 7E+999999999 -> -1.7636684E-1000000000 Inexact Rounded Underflow Subnormal
divx957 divide 9E+999999999 -0.83456789012345E-0 -> -Infinity Inexact Overflow Rounded
divx958 divide -0.100 9E+999999999 -> -1.111111E-1000000001 Subnormal Inexact Rounded Underflow
divx959 divide 9E-999999999 -9.100 -> -9.8901099E-1000000000 Inexact Rounded Underflow Subnormal

-- overflow and underflow (additional edge tests in multiply.decTest)
-- 'subnormal' results now possible (all hard underflow or overflow in
-- base arithemtic)
divx960 divide 1e-600000000 1e+400000001 -> 1E-1000000001 Subnormal
divx961 divide 1e-600000000 1e+400000002 -> 1E-1000000002 Subnormal
divx962 divide 1e-600000000 1e+400000003 -> 1E-1000000003 Subnormal
divx963 divide 1e-600000000 1e+400000004 -> 1E-1000000004 Subnormal
divx964 divide 1e-600000000 1e+400000005 -> 1E-1000000005 Subnormal
divx965 divide 1e-600000000 1e+400000006 -> 1E-1000000006 Subnormal
divx966 divide 1e-600000000 1e+400000007 -> 1E-1000000007 Subnormal
divx967 divide 1e-600000000 1e+400000008 -> 0E-1000000007 Underflow Subnormal Inexact Rounded
divx968 divide 1e-600000000 1e+400000009 -> 0E-1000000007 Underflow Subnormal Inexact Rounded
divx969 divide 1e-600000000 1e+400000010 -> 0E-1000000007 Underflow Subnormal Inexact Rounded
-- [no equivalent of 'subnormal' for overflow]
divx970 divide 1e+600000000 1e-400000001 -> Infinity Overflow Inexact Rounded
divx971 divide 1e+600000000 1e-400000002 -> Infinity Overflow Inexact Rounded
divx972 divide 1e+600000000 1e-400000003 -> Infinity Overflow Inexact Rounded
divx973 divide 1e+600000000 1e-400000004 -> Infinity Overflow Inexact Rounded
divx974 divide 1e+600000000 1e-400000005 -> Infinity Overflow Inexact Rounded
divx975 divide 1e+600000000 1e-400000006 -> Infinity Overflow Inexact Rounded
divx976 divide 1e+600000000 1e-400000007 -> Infinity Overflow Inexact Rounded
divx977 divide 1e+600000000 1e-400000008 -> Infinity Overflow Inexact Rounded
divx978 divide 1e+600000000 1e-400000009 -> Infinity Overflow Inexact Rounded
divx979 divide 1e+600000000 1e-400000010 -> Infinity Overflow Inexact Rounded

-- Sign after overflow and underflow
divx980 divide  1e-600000000  1e+400000009 ->  0E-1000000007 Underflow Subnormal Inexact Rounded
divx981 divide  1e-600000000 -1e+400000009 -> -0E-1000000007 Underflow Subnormal Inexact Rounded
divx982 divide -1e-600000000  1e+400000009 -> -0E-1000000007 Underflow Subnormal Inexact Rounded
divx983 divide -1e-600000000 -1e+400000009 ->  0E-1000000007 Underflow Subnormal Inexact Rounded
divx984 divide  1e+600000000  1e-400000009 ->  Infinity Overflow Inexact Rounded
divx985 divide  1e+600000000 -1e-400000009 -> -Infinity Overflow Inexact Rounded
divx986 divide -1e+600000000  1e-400000009 -> -Infinity Overflow Inexact Rounded
divx987 divide -1e+600000000 -1e-400000009 ->  Infinity Overflow Inexact Rounded

-- Long operand overflow may be a different path
precision: 3
divx990 divide 1000  9.999E-999999999      ->  Infinity Inexact Overflow Rounded
divx991 divide 1000 -9.999E-999999999      -> -Infinity Inexact Overflow Rounded
divx992 divide       9.999E+999999999 0.01 ->  Infinity Inexact Overflow Rounded
divx993 divide      -9.999E+999999999 0.01 -> -Infinity Inexact Overflow Rounded

-- check for double-rounded subnormals
precision:   5
maxexponent: 79
minexponent: -79
divx1001 divide    1.52444E-80 1      -> 1.524E-80 Inexact Rounded Subnormal Underflow
divx1002 divide    1.52445E-80 1      -> 1.524E-80 Inexact Rounded Subnormal Underflow
divx1003 divide    1.52446E-80 1      -> 1.524E-80 Inexact Rounded Subnormal Underflow

-- a rounding problem in one implementation
precision:   34
rounding:    half_up
maxExponent: 6144
minExponent: -6143
-- Unbounded answer to 40 digits:
--   1.465811965811965811965811965811965811966E+7000
divx1010 divide 343E6000  234E-1000 -> Infinity Overflow Inexact Rounded

-- Null tests
divx9998 divide 10  # -> NaN Invalid_operation
divx9999 divide  # 10 -> NaN Invalid_operation