symbian-qemu-0.9.1-12/python-2.6.1/Lib/test/decimaltestdata/divide.decTest
author Gareth Stockwell <gareth.stockwell@accenture.com>
Wed, 22 Sep 2010 15:40:40 +0100
branchgraphics-phase-3
changeset 111 345f1c88c950
parent 1 2fb8b9db1c86
permissions -rw-r--r--
Fixes to syborg-graphicswrapper.vcproj These changes allow syborg-graphicswrapper to link against the hostthreadadapter and khronosapiwrapper libraries built by the graphics.simulator component. The .vcproj file uses relative paths, which requires that the following three packages are laid out as follows: os/ graphics adapt/ graphics.simulator qemu

------------------------------------------------------------------------
-- divide.decTest -- decimal division                                 --
-- Copyright (c) IBM Corporation, 1981, 2008.  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.58

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  50    20     ->  2.5
divx023 divide  500   200    ->  2.5
divx024 divide  50.0  20.0   ->  2.5
divx025 divide  5.00  2.00   ->  2.5
divx026 divide  5     2.0    ->  2.5
divx027 divide  5     2.000  ->  2.5
divx028 divide  5     0.20   ->  25
divx029 divide  5     0.200  ->  25
divx030 divide  10    1      ->  10
divx031 divide  100   1      ->  100
divx032 divide  1000  1      ->  1000
divx033 divide  1000  100    ->  10

divx035 divide  1     2      ->  0.5
divx036 divide  1     4      ->  0.25
divx037 divide  1     8      ->  0.125
divx038 divide  1     16     ->  0.0625
divx039 divide  1     32     ->  0.03125
divx040 divide  1     64     ->  0.015625
divx041 divide  1    -2      ->  -0.5
divx042 divide  1    -4      ->  -0.25
divx043 divide  1    -8      ->  -0.125
divx044 divide  1    -16     ->  -0.0625
divx045 divide  1    -32     ->  -0.03125
divx046 divide  1    -64     ->  -0.015625
divx047 divide -1     2      ->  -0.5
divx048 divide -1     4      ->  -0.25
divx049 divide -1     8      ->  -0.125
divx050 divide -1     16     ->  -0.0625
divx051 divide -1     32     ->  -0.03125
divx052 divide -1     64     ->  -0.015625
divx053 divide -1    -2      ->  0.5
divx054 divide -1    -4      ->  0.25
divx055 divide -1    -8      ->  0.125
divx056 divide -1    -16     ->  0.0625
divx057 divide -1    -32     ->  0.03125
divx058 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 Clamped
divx968 divide 1e-600000000 1e+400000009 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
divx969 divide 1e-600000000 1e+400000010 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
-- [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 Clamped
divx981 divide  1e-600000000 -1e+400000009 -> -0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
divx982 divide -1e-600000000  1e+400000009 -> -0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
divx983 divide -1e-600000000 -1e+400000009 ->  0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
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

precision:   34
rounding:    half_up
maxExponent: 6144
minExponent: -6143

-- Examples from SQL proposal (Krishna Kulkarni)
precision: 7
divx1021  divide 1E0          1E0 -> 1
divx1022  divide 1E0          2E0 -> 0.5
divx1023  divide 1E0          3E0 -> 0.3333333 Inexact Rounded
divx1024  divide 100E-2   1000E-3 -> 1
divx1025  divide 24E-1        2E0 -> 1.2
divx1026  divide 2400E-3      2E0 -> 1.200
divx1027  divide 5E0          2E0 -> 2.5
divx1028  divide 5E0        20E-1 -> 2.5
divx1029  divide 5E0      2000E-3 -> 2.5
divx1030  divide 5E0         2E-1 -> 25
divx1031  divide 5E0        20E-2 -> 25
divx1032  divide 480E-2       3E0 -> 1.60
divx1033  divide 47E-1        2E0 -> 2.35

-- ECMAScript bad examples
rounding:    half_down
precision: 7
divx1050  divide 5 9  -> 0.5555556 Inexact Rounded
rounding:    half_even
divx1051  divide 5 11 -> 0.4545455 Inexact Rounded

-- payload decapitate
precision: 5
divx1055  divide   sNaN987654321 1 ->  NaN54321  Invalid_operation

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