+++ /dev/null
-------------------------------------------------------------------------\r
--- ddCompare.decTest -- decDouble comparison that allows quiet NaNs --\r
--- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. --\r
-------------------------------------------------------------------------\r
--- Please see the document "General Decimal Arithmetic Testcases" --\r
--- at http://www2.hursley.ibm.com/decimal for the description of --\r
--- these testcases. --\r
--- --\r
--- These testcases are experimental ('beta' versions), and they --\r
--- may contain errors. They are offered on an as-is basis. In --\r
--- particular, achieving the same results as the tests here is not --\r
--- a guarantee that an implementation complies with any Standard --\r
--- or specification. The tests are not exhaustive. --\r
--- --\r
--- Please send comments, suggestions, and corrections to the author: --\r
--- Mike Cowlishaw, IBM Fellow --\r
--- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --\r
--- mfc@uk.ibm.com --\r
-------------------------------------------------------------------------\r
-version: 2.59\r
-\r
--- Note that we cannot assume add/subtract tests cover paths adequately,\r
--- here, because the code might be quite different (comparison cannot\r
--- overflow or underflow, so actual subtractions are not necessary).\r
-\r
--- All operands and results are decDoubles.\r
-precision: 16\r
-maxExponent: 384\r
-minExponent: -383\r
-extended: 1\r
-clamp: 1\r
-rounding: half_even\r
-\r
--- sanity checks\r
-ddcom001 compare -2 -2 -> 0\r
-ddcom002 compare -2 -1 -> -1\r
-ddcom003 compare -2 0 -> -1\r
-ddcom004 compare -2 1 -> -1\r
-ddcom005 compare -2 2 -> -1\r
-ddcom006 compare -1 -2 -> 1\r
-ddcom007 compare -1 -1 -> 0\r
-ddcom008 compare -1 0 -> -1\r
-ddcom009 compare -1 1 -> -1\r
-ddcom010 compare -1 2 -> -1\r
-ddcom011 compare 0 -2 -> 1\r
-ddcom012 compare 0 -1 -> 1\r
-ddcom013 compare 0 0 -> 0\r
-ddcom014 compare 0 1 -> -1\r
-ddcom015 compare 0 2 -> -1\r
-ddcom016 compare 1 -2 -> 1\r
-ddcom017 compare 1 -1 -> 1\r
-ddcom018 compare 1 0 -> 1\r
-ddcom019 compare 1 1 -> 0\r
-ddcom020 compare 1 2 -> -1\r
-ddcom021 compare 2 -2 -> 1\r
-ddcom022 compare 2 -1 -> 1\r
-ddcom023 compare 2 0 -> 1\r
-ddcom025 compare 2 1 -> 1\r
-ddcom026 compare 2 2 -> 0\r
-\r
-ddcom031 compare -20 -20 -> 0\r
-ddcom032 compare -20 -10 -> -1\r
-ddcom033 compare -20 00 -> -1\r
-ddcom034 compare -20 10 -> -1\r
-ddcom035 compare -20 20 -> -1\r
-ddcom036 compare -10 -20 -> 1\r
-ddcom037 compare -10 -10 -> 0\r
-ddcom038 compare -10 00 -> -1\r
-ddcom039 compare -10 10 -> -1\r
-ddcom040 compare -10 20 -> -1\r
-ddcom041 compare 00 -20 -> 1\r
-ddcom042 compare 00 -10 -> 1\r
-ddcom043 compare 00 00 -> 0\r
-ddcom044 compare 00 10 -> -1\r
-ddcom045 compare 00 20 -> -1\r
-ddcom046 compare 10 -20 -> 1\r
-ddcom047 compare 10 -10 -> 1\r
-ddcom048 compare 10 00 -> 1\r
-ddcom049 compare 10 10 -> 0\r
-ddcom050 compare 10 20 -> -1\r
-ddcom051 compare 20 -20 -> 1\r
-ddcom052 compare 20 -10 -> 1\r
-ddcom053 compare 20 00 -> 1\r
-ddcom055 compare 20 10 -> 1\r
-ddcom056 compare 20 20 -> 0\r
-\r
-ddcom061 compare -2.0 -2.0 -> 0\r
-ddcom062 compare -2.0 -1.0 -> -1\r
-ddcom063 compare -2.0 0.0 -> -1\r
-ddcom064 compare -2.0 1.0 -> -1\r
-ddcom065 compare -2.0 2.0 -> -1\r
-ddcom066 compare -1.0 -2.0 -> 1\r
-ddcom067 compare -1.0 -1.0 -> 0\r
-ddcom068 compare -1.0 0.0 -> -1\r
-ddcom069 compare -1.0 1.0 -> -1\r
-ddcom070 compare -1.0 2.0 -> -1\r
-ddcom071 compare 0.0 -2.0 -> 1\r
-ddcom072 compare 0.0 -1.0 -> 1\r
-ddcom073 compare 0.0 0.0 -> 0\r
-ddcom074 compare 0.0 1.0 -> -1\r
-ddcom075 compare 0.0 2.0 -> -1\r
-ddcom076 compare 1.0 -2.0 -> 1\r
-ddcom077 compare 1.0 -1.0 -> 1\r
-ddcom078 compare 1.0 0.0 -> 1\r
-ddcom079 compare 1.0 1.0 -> 0\r
-ddcom080 compare 1.0 2.0 -> -1\r
-ddcom081 compare 2.0 -2.0 -> 1\r
-ddcom082 compare 2.0 -1.0 -> 1\r
-ddcom083 compare 2.0 0.0 -> 1\r
-ddcom085 compare 2.0 1.0 -> 1\r
-ddcom086 compare 2.0 2.0 -> 0\r
-ddcom087 compare 1.0 0.1 -> 1\r
-ddcom088 compare 0.1 1.0 -> -1\r
-\r
--- now some cases which might overflow if subtract were used\r
-ddcom095 compare 9.999999999999999E+384 9.999999999999999E+384 -> 0\r
-ddcom096 compare -9.999999999999999E+384 9.999999999999999E+384 -> -1\r
-ddcom097 compare 9.999999999999999E+384 -9.999999999999999E+384 -> 1\r
-ddcom098 compare -9.999999999999999E+384 -9.999999999999999E+384 -> 0\r
-\r
--- some differing length/exponent cases\r
-ddcom100 compare 7.0 7.0 -> 0\r
-ddcom101 compare 7.0 7 -> 0\r
-ddcom102 compare 7 7.0 -> 0\r
-ddcom103 compare 7E+0 7.0 -> 0\r
-ddcom104 compare 70E-1 7.0 -> 0\r
-ddcom105 compare 0.7E+1 7 -> 0\r
-ddcom106 compare 70E-1 7 -> 0\r
-ddcom107 compare 7.0 7E+0 -> 0\r
-ddcom108 compare 7.0 70E-1 -> 0\r
-ddcom109 compare 7 0.7E+1 -> 0\r
-ddcom110 compare 7 70E-1 -> 0\r
-\r
-ddcom120 compare 8.0 7.0 -> 1\r
-ddcom121 compare 8.0 7 -> 1\r
-ddcom122 compare 8 7.0 -> 1\r
-ddcom123 compare 8E+0 7.0 -> 1\r
-ddcom124 compare 80E-1 7.0 -> 1\r
-ddcom125 compare 0.8E+1 7 -> 1\r
-ddcom126 compare 80E-1 7 -> 1\r
-ddcom127 compare 8.0 7E+0 -> 1\r
-ddcom128 compare 8.0 70E-1 -> 1\r
-ddcom129 compare 8 0.7E+1 -> 1\r
-ddcom130 compare 8 70E-1 -> 1\r
-\r
-ddcom140 compare 8.0 9.0 -> -1\r
-ddcom141 compare 8.0 9 -> -1\r
-ddcom142 compare 8 9.0 -> -1\r
-ddcom143 compare 8E+0 9.0 -> -1\r
-ddcom144 compare 80E-1 9.0 -> -1\r
-ddcom145 compare 0.8E+1 9 -> -1\r
-ddcom146 compare 80E-1 9 -> -1\r
-ddcom147 compare 8.0 9E+0 -> -1\r
-ddcom148 compare 8.0 90E-1 -> -1\r
-ddcom149 compare 8 0.9E+1 -> -1\r
-ddcom150 compare 8 90E-1 -> -1\r
-\r
--- and again, with sign changes -+ ..\r
-ddcom200 compare -7.0 7.0 -> -1\r
-ddcom201 compare -7.0 7 -> -1\r
-ddcom202 compare -7 7.0 -> -1\r
-ddcom203 compare -7E+0 7.0 -> -1\r
-ddcom204 compare -70E-1 7.0 -> -1\r
-ddcom205 compare -0.7E+1 7 -> -1\r
-ddcom206 compare -70E-1 7 -> -1\r
-ddcom207 compare -7.0 7E+0 -> -1\r
-ddcom208 compare -7.0 70E-1 -> -1\r
-ddcom209 compare -7 0.7E+1 -> -1\r
-ddcom210 compare -7 70E-1 -> -1\r
-\r
-ddcom220 compare -8.0 7.0 -> -1\r
-ddcom221 compare -8.0 7 -> -1\r
-ddcom222 compare -8 7.0 -> -1\r
-ddcom223 compare -8E+0 7.0 -> -1\r
-ddcom224 compare -80E-1 7.0 -> -1\r
-ddcom225 compare -0.8E+1 7 -> -1\r
-ddcom226 compare -80E-1 7 -> -1\r
-ddcom227 compare -8.0 7E+0 -> -1\r
-ddcom228 compare -8.0 70E-1 -> -1\r
-ddcom229 compare -8 0.7E+1 -> -1\r
-ddcom230 compare -8 70E-1 -> -1\r
-\r
-ddcom240 compare -8.0 9.0 -> -1\r
-ddcom241 compare -8.0 9 -> -1\r
-ddcom242 compare -8 9.0 -> -1\r
-ddcom243 compare -8E+0 9.0 -> -1\r
-ddcom244 compare -80E-1 9.0 -> -1\r
-ddcom245 compare -0.8E+1 9 -> -1\r
-ddcom246 compare -80E-1 9 -> -1\r
-ddcom247 compare -8.0 9E+0 -> -1\r
-ddcom248 compare -8.0 90E-1 -> -1\r
-ddcom249 compare -8 0.9E+1 -> -1\r
-ddcom250 compare -8 90E-1 -> -1\r
-\r
--- and again, with sign changes +- ..\r
-ddcom300 compare 7.0 -7.0 -> 1\r
-ddcom301 compare 7.0 -7 -> 1\r
-ddcom302 compare 7 -7.0 -> 1\r
-ddcom303 compare 7E+0 -7.0 -> 1\r
-ddcom304 compare 70E-1 -7.0 -> 1\r
-ddcom305 compare .7E+1 -7 -> 1\r
-ddcom306 compare 70E-1 -7 -> 1\r
-ddcom307 compare 7.0 -7E+0 -> 1\r
-ddcom308 compare 7.0 -70E-1 -> 1\r
-ddcom309 compare 7 -.7E+1 -> 1\r
-ddcom310 compare 7 -70E-1 -> 1\r
-\r
-ddcom320 compare 8.0 -7.0 -> 1\r
-ddcom321 compare 8.0 -7 -> 1\r
-ddcom322 compare 8 -7.0 -> 1\r
-ddcom323 compare 8E+0 -7.0 -> 1\r
-ddcom324 compare 80E-1 -7.0 -> 1\r
-ddcom325 compare .8E+1 -7 -> 1\r
-ddcom326 compare 80E-1 -7 -> 1\r
-ddcom327 compare 8.0 -7E+0 -> 1\r
-ddcom328 compare 8.0 -70E-1 -> 1\r
-ddcom329 compare 8 -.7E+1 -> 1\r
-ddcom330 compare 8 -70E-1 -> 1\r
-\r
-ddcom340 compare 8.0 -9.0 -> 1\r
-ddcom341 compare 8.0 -9 -> 1\r
-ddcom342 compare 8 -9.0 -> 1\r
-ddcom343 compare 8E+0 -9.0 -> 1\r
-ddcom344 compare 80E-1 -9.0 -> 1\r
-ddcom345 compare .8E+1 -9 -> 1\r
-ddcom346 compare 80E-1 -9 -> 1\r
-ddcom347 compare 8.0 -9E+0 -> 1\r
-ddcom348 compare 8.0 -90E-1 -> 1\r
-ddcom349 compare 8 -.9E+1 -> 1\r
-ddcom350 compare 8 -90E-1 -> 1\r
-\r
--- and again, with sign changes -- ..\r
-ddcom400 compare -7.0 -7.0 -> 0\r
-ddcom401 compare -7.0 -7 -> 0\r
-ddcom402 compare -7 -7.0 -> 0\r
-ddcom403 compare -7E+0 -7.0 -> 0\r
-ddcom404 compare -70E-1 -7.0 -> 0\r
-ddcom405 compare -.7E+1 -7 -> 0\r
-ddcom406 compare -70E-1 -7 -> 0\r
-ddcom407 compare -7.0 -7E+0 -> 0\r
-ddcom408 compare -7.0 -70E-1 -> 0\r
-ddcom409 compare -7 -.7E+1 -> 0\r
-ddcom410 compare -7 -70E-1 -> 0\r
-\r
-ddcom420 compare -8.0 -7.0 -> -1\r
-ddcom421 compare -8.0 -7 -> -1\r
-ddcom422 compare -8 -7.0 -> -1\r
-ddcom423 compare -8E+0 -7.0 -> -1\r
-ddcom424 compare -80E-1 -7.0 -> -1\r
-ddcom425 compare -.8E+1 -7 -> -1\r
-ddcom426 compare -80E-1 -7 -> -1\r
-ddcom427 compare -8.0 -7E+0 -> -1\r
-ddcom428 compare -8.0 -70E-1 -> -1\r
-ddcom429 compare -8 -.7E+1 -> -1\r
-ddcom430 compare -8 -70E-1 -> -1\r
-\r
-ddcom440 compare -8.0 -9.0 -> 1\r
-ddcom441 compare -8.0 -9 -> 1\r
-ddcom442 compare -8 -9.0 -> 1\r
-ddcom443 compare -8E+0 -9.0 -> 1\r
-ddcom444 compare -80E-1 -9.0 -> 1\r
-ddcom445 compare -.8E+1 -9 -> 1\r
-ddcom446 compare -80E-1 -9 -> 1\r
-ddcom447 compare -8.0 -9E+0 -> 1\r
-ddcom448 compare -8.0 -90E-1 -> 1\r
-ddcom449 compare -8 -.9E+1 -> 1\r
-ddcom450 compare -8 -90E-1 -> 1\r
-\r
--- misalignment traps for little-endian\r
-ddcom451 compare 1.0 0.1 -> 1\r
-ddcom452 compare 0.1 1.0 -> -1\r
-ddcom453 compare 10.0 0.1 -> 1\r
-ddcom454 compare 0.1 10.0 -> -1\r
-ddcom455 compare 100 1.0 -> 1\r
-ddcom456 compare 1.0 100 -> -1\r
-ddcom457 compare 1000 10.0 -> 1\r
-ddcom458 compare 10.0 1000 -> -1\r
-ddcom459 compare 10000 100.0 -> 1\r
-ddcom460 compare 100.0 10000 -> -1\r
-ddcom461 compare 100000 1000.0 -> 1\r
-ddcom462 compare 1000.0 100000 -> -1\r
-ddcom463 compare 1000000 10000.0 -> 1\r
-ddcom464 compare 10000.0 1000000 -> -1\r
-\r
--- testcases that subtract to lots of zeros at boundaries [pgr]\r
-ddcom473 compare 123.4560000000000E-89 123.456E-89 -> 0\r
-ddcom474 compare 123.456000000000E+89 123.456E+89 -> 0\r
-ddcom475 compare 123.45600000000E-89 123.456E-89 -> 0\r
-ddcom476 compare 123.4560000000E+89 123.456E+89 -> 0\r
-ddcom477 compare 123.456000000E-89 123.456E-89 -> 0\r
-ddcom478 compare 123.45600000E+89 123.456E+89 -> 0\r
-ddcom479 compare 123.4560000E-89 123.456E-89 -> 0\r
-ddcom480 compare 123.456000E+89 123.456E+89 -> 0\r
-ddcom481 compare 123.45600E-89 123.456E-89 -> 0\r
-ddcom482 compare 123.4560E+89 123.456E+89 -> 0\r
-ddcom483 compare 123.456E-89 123.456E-89 -> 0\r
-ddcom487 compare 123.456E+89 123.4560000000000E+89 -> 0\r
-ddcom488 compare 123.456E-89 123.456000000000E-89 -> 0\r
-ddcom489 compare 123.456E+89 123.45600000000E+89 -> 0\r
-ddcom490 compare 123.456E-89 123.4560000000E-89 -> 0\r
-ddcom491 compare 123.456E+89 123.456000000E+89 -> 0\r
-ddcom492 compare 123.456E-89 123.45600000E-89 -> 0\r
-ddcom493 compare 123.456E+89 123.4560000E+89 -> 0\r
-ddcom494 compare 123.456E-89 123.456000E-89 -> 0\r
-ddcom495 compare 123.456E+89 123.45600E+89 -> 0\r
-ddcom496 compare 123.456E-89 123.4560E-89 -> 0\r
-ddcom497 compare 123.456E+89 123.456E+89 -> 0\r
-\r
--- wide-ranging, around precision; signs equal\r
-ddcom500 compare 1 1E-15 -> 1\r
-ddcom501 compare 1 1E-14 -> 1\r
-ddcom502 compare 1 1E-13 -> 1\r
-ddcom503 compare 1 1E-12 -> 1\r
-ddcom504 compare 1 1E-11 -> 1\r
-ddcom505 compare 1 1E-10 -> 1\r
-ddcom506 compare 1 1E-9 -> 1\r
-ddcom507 compare 1 1E-8 -> 1\r
-ddcom508 compare 1 1E-7 -> 1\r
-ddcom509 compare 1 1E-6 -> 1\r
-ddcom510 compare 1 1E-5 -> 1\r
-ddcom511 compare 1 1E-4 -> 1\r
-ddcom512 compare 1 1E-3 -> 1\r
-ddcom513 compare 1 1E-2 -> 1\r
-ddcom514 compare 1 1E-1 -> 1\r
-ddcom515 compare 1 1E-0 -> 0\r
-ddcom516 compare 1 1E+1 -> -1\r
-ddcom517 compare 1 1E+2 -> -1\r
-ddcom518 compare 1 1E+3 -> -1\r
-ddcom519 compare 1 1E+4 -> -1\r
-ddcom521 compare 1 1E+5 -> -1\r
-ddcom522 compare 1 1E+6 -> -1\r
-ddcom523 compare 1 1E+7 -> -1\r
-ddcom524 compare 1 1E+8 -> -1\r
-ddcom525 compare 1 1E+9 -> -1\r
-ddcom526 compare 1 1E+10 -> -1\r
-ddcom527 compare 1 1E+11 -> -1\r
-ddcom528 compare 1 1E+12 -> -1\r
-ddcom529 compare 1 1E+13 -> -1\r
-ddcom530 compare 1 1E+14 -> -1\r
-ddcom531 compare 1 1E+15 -> -1\r
--- LR swap\r
-ddcom540 compare 1E-15 1 -> -1\r
-ddcom541 compare 1E-14 1 -> -1\r
-ddcom542 compare 1E-13 1 -> -1\r
-ddcom543 compare 1E-12 1 -> -1\r
-ddcom544 compare 1E-11 1 -> -1\r
-ddcom545 compare 1E-10 1 -> -1\r
-ddcom546 compare 1E-9 1 -> -1\r
-ddcom547 compare 1E-8 1 -> -1\r
-ddcom548 compare 1E-7 1 -> -1\r
-ddcom549 compare 1E-6 1 -> -1\r
-ddcom550 compare 1E-5 1 -> -1\r
-ddcom551 compare 1E-4 1 -> -1\r
-ddcom552 compare 1E-3 1 -> -1\r
-ddcom553 compare 1E-2 1 -> -1\r
-ddcom554 compare 1E-1 1 -> -1\r
-ddcom555 compare 1E-0 1 -> 0\r
-ddcom556 compare 1E+1 1 -> 1\r
-ddcom557 compare 1E+2 1 -> 1\r
-ddcom558 compare 1E+3 1 -> 1\r
-ddcom559 compare 1E+4 1 -> 1\r
-ddcom561 compare 1E+5 1 -> 1\r
-ddcom562 compare 1E+6 1 -> 1\r
-ddcom563 compare 1E+7 1 -> 1\r
-ddcom564 compare 1E+8 1 -> 1\r
-ddcom565 compare 1E+9 1 -> 1\r
-ddcom566 compare 1E+10 1 -> 1\r
-ddcom567 compare 1E+11 1 -> 1\r
-ddcom568 compare 1E+12 1 -> 1\r
-ddcom569 compare 1E+13 1 -> 1\r
-ddcom570 compare 1E+14 1 -> 1\r
-ddcom571 compare 1E+15 1 -> 1\r
--- similar with a useful coefficient, one side only\r
-ddcom580 compare 0.000000987654321 1E-15 -> 1\r
-ddcom581 compare 0.000000987654321 1E-14 -> 1\r
-ddcom582 compare 0.000000987654321 1E-13 -> 1\r
-ddcom583 compare 0.000000987654321 1E-12 -> 1\r
-ddcom584 compare 0.000000987654321 1E-11 -> 1\r
-ddcom585 compare 0.000000987654321 1E-10 -> 1\r
-ddcom586 compare 0.000000987654321 1E-9 -> 1\r
-ddcom587 compare 0.000000987654321 1E-8 -> 1\r
-ddcom588 compare 0.000000987654321 1E-7 -> 1\r
-ddcom589 compare 0.000000987654321 1E-6 -> -1\r
-ddcom590 compare 0.000000987654321 1E-5 -> -1\r
-ddcom591 compare 0.000000987654321 1E-4 -> -1\r
-ddcom592 compare 0.000000987654321 1E-3 -> -1\r
-ddcom593 compare 0.000000987654321 1E-2 -> -1\r
-ddcom594 compare 0.000000987654321 1E-1 -> -1\r
-ddcom595 compare 0.000000987654321 1E-0 -> -1\r
-ddcom596 compare 0.000000987654321 1E+1 -> -1\r
-ddcom597 compare 0.000000987654321 1E+2 -> -1\r
-ddcom598 compare 0.000000987654321 1E+3 -> -1\r
-ddcom599 compare 0.000000987654321 1E+4 -> -1\r
-\r
--- check some unit-y traps\r
-ddcom600 compare 12 12.2345 -> -1\r
-ddcom601 compare 12.0 12.2345 -> -1\r
-ddcom602 compare 12.00 12.2345 -> -1\r
-ddcom603 compare 12.000 12.2345 -> -1\r
-ddcom604 compare 12.0000 12.2345 -> -1\r
-ddcom605 compare 12.00000 12.2345 -> -1\r
-ddcom606 compare 12.000000 12.2345 -> -1\r
-ddcom607 compare 12.0000000 12.2345 -> -1\r
-ddcom608 compare 12.00000000 12.2345 -> -1\r
-ddcom609 compare 12.000000000 12.2345 -> -1\r
-ddcom610 compare 12.1234 12 -> 1\r
-ddcom611 compare 12.1234 12.0 -> 1\r
-ddcom612 compare 12.1234 12.00 -> 1\r
-ddcom613 compare 12.1234 12.000 -> 1\r
-ddcom614 compare 12.1234 12.0000 -> 1\r
-ddcom615 compare 12.1234 12.00000 -> 1\r
-ddcom616 compare 12.1234 12.000000 -> 1\r
-ddcom617 compare 12.1234 12.0000000 -> 1\r
-ddcom618 compare 12.1234 12.00000000 -> 1\r
-ddcom619 compare 12.1234 12.000000000 -> 1\r
-ddcom620 compare -12 -12.2345 -> 1\r
-ddcom621 compare -12.0 -12.2345 -> 1\r
-ddcom622 compare -12.00 -12.2345 -> 1\r
-ddcom623 compare -12.000 -12.2345 -> 1\r
-ddcom624 compare -12.0000 -12.2345 -> 1\r
-ddcom625 compare -12.00000 -12.2345 -> 1\r
-ddcom626 compare -12.000000 -12.2345 -> 1\r
-ddcom627 compare -12.0000000 -12.2345 -> 1\r
-ddcom628 compare -12.00000000 -12.2345 -> 1\r
-ddcom629 compare -12.000000000 -12.2345 -> 1\r
-ddcom630 compare -12.1234 -12 -> -1\r
-ddcom631 compare -12.1234 -12.0 -> -1\r
-ddcom632 compare -12.1234 -12.00 -> -1\r
-ddcom633 compare -12.1234 -12.000 -> -1\r
-ddcom634 compare -12.1234 -12.0000 -> -1\r
-ddcom635 compare -12.1234 -12.00000 -> -1\r
-ddcom636 compare -12.1234 -12.000000 -> -1\r
-ddcom637 compare -12.1234 -12.0000000 -> -1\r
-ddcom638 compare -12.1234 -12.00000000 -> -1\r
-ddcom639 compare -12.1234 -12.000000000 -> -1\r
-\r
--- extended zeros\r
-ddcom640 compare 0 0 -> 0\r
-ddcom641 compare 0 -0 -> 0\r
-ddcom642 compare 0 -0.0 -> 0\r
-ddcom643 compare 0 0.0 -> 0\r
-ddcom644 compare -0 0 -> 0\r
-ddcom645 compare -0 -0 -> 0\r
-ddcom646 compare -0 -0.0 -> 0\r
-ddcom647 compare -0 0.0 -> 0\r
-ddcom648 compare 0.0 0 -> 0\r
-ddcom649 compare 0.0 -0 -> 0\r
-ddcom650 compare 0.0 -0.0 -> 0\r
-ddcom651 compare 0.0 0.0 -> 0\r
-ddcom652 compare -0.0 0 -> 0\r
-ddcom653 compare -0.0 -0 -> 0\r
-ddcom654 compare -0.0 -0.0 -> 0\r
-ddcom655 compare -0.0 0.0 -> 0\r
-\r
-ddcom656 compare -0E1 0.0 -> 0\r
-ddcom657 compare -0E2 0.0 -> 0\r
-ddcom658 compare 0E1 0.0 -> 0\r
-ddcom659 compare 0E2 0.0 -> 0\r
-ddcom660 compare -0E1 0 -> 0\r
-ddcom661 compare -0E2 0 -> 0\r
-ddcom662 compare 0E1 0 -> 0\r
-ddcom663 compare 0E2 0 -> 0\r
-ddcom664 compare -0E1 -0E1 -> 0\r
-ddcom665 compare -0E2 -0E1 -> 0\r
-ddcom666 compare 0E1 -0E1 -> 0\r
-ddcom667 compare 0E2 -0E1 -> 0\r
-ddcom668 compare -0E1 -0E2 -> 0\r
-ddcom669 compare -0E2 -0E2 -> 0\r
-ddcom670 compare 0E1 -0E2 -> 0\r
-ddcom671 compare 0E2 -0E2 -> 0\r
-ddcom672 compare -0E1 0E1 -> 0\r
-ddcom673 compare -0E2 0E1 -> 0\r
-ddcom674 compare 0E1 0E1 -> 0\r
-ddcom675 compare 0E2 0E1 -> 0\r
-ddcom676 compare -0E1 0E2 -> 0\r
-ddcom677 compare -0E2 0E2 -> 0\r
-ddcom678 compare 0E1 0E2 -> 0\r
-ddcom679 compare 0E2 0E2 -> 0\r
-\r
--- trailing zeros; unit-y\r
-ddcom680 compare 12 12 -> 0\r
-ddcom681 compare 12 12.0 -> 0\r
-ddcom682 compare 12 12.00 -> 0\r
-ddcom683 compare 12 12.000 -> 0\r
-ddcom684 compare 12 12.0000 -> 0\r
-ddcom685 compare 12 12.00000 -> 0\r
-ddcom686 compare 12 12.000000 -> 0\r
-ddcom687 compare 12 12.0000000 -> 0\r
-ddcom688 compare 12 12.00000000 -> 0\r
-ddcom689 compare 12 12.000000000 -> 0\r
-ddcom690 compare 12 12 -> 0\r
-ddcom691 compare 12.0 12 -> 0\r
-ddcom692 compare 12.00 12 -> 0\r
-ddcom693 compare 12.000 12 -> 0\r
-ddcom694 compare 12.0000 12 -> 0\r
-ddcom695 compare 12.00000 12 -> 0\r
-ddcom696 compare 12.000000 12 -> 0\r
-ddcom697 compare 12.0000000 12 -> 0\r
-ddcom698 compare 12.00000000 12 -> 0\r
-ddcom699 compare 12.000000000 12 -> 0\r
-\r
--- first, second, & last digit\r
-ddcom700 compare 1234567890123456 1234567890123455 -> 1\r
-ddcom701 compare 1234567890123456 1234567890123456 -> 0\r
-ddcom702 compare 1234567890123456 1234567890123457 -> -1\r
-ddcom703 compare 1234567890123456 0234567890123456 -> 1\r
-ddcom704 compare 1234567890123456 1234567890123456 -> 0\r
-ddcom705 compare 1234567890123456 2234567890123456 -> -1\r
-ddcom706 compare 1134567890123456 1034567890123456 -> 1\r
-ddcom707 compare 1134567890123456 1134567890123456 -> 0\r
-ddcom708 compare 1134567890123456 1234567890123456 -> -1\r
-\r
--- miscellaneous\r
-ddcom721 compare 12345678000 1 -> 1\r
-ddcom722 compare 1 12345678000 -> -1\r
-ddcom723 compare 1234567800 1 -> 1\r
-ddcom724 compare 1 1234567800 -> -1\r
-ddcom725 compare 1234567890 1 -> 1\r
-ddcom726 compare 1 1234567890 -> -1\r
-ddcom727 compare 1234567891 1 -> 1\r
-ddcom728 compare 1 1234567891 -> -1\r
-ddcom729 compare 12345678901 1 -> 1\r
-ddcom730 compare 1 12345678901 -> -1\r
-ddcom731 compare 1234567896 1 -> 1\r
-ddcom732 compare 1 1234567896 -> -1\r
-\r
--- residue cases at lower precision\r
-ddcom740 compare 1 0.9999999 -> 1\r
-ddcom741 compare 1 0.999999 -> 1\r
-ddcom742 compare 1 0.99999 -> 1\r
-ddcom743 compare 1 1.0000 -> 0\r
-ddcom744 compare 1 1.00001 -> -1\r
-ddcom745 compare 1 1.000001 -> -1\r
-ddcom746 compare 1 1.0000001 -> -1\r
-ddcom750 compare 0.9999999 1 -> -1\r
-ddcom751 compare 0.999999 1 -> -1\r
-ddcom752 compare 0.99999 1 -> -1\r
-ddcom753 compare 1.0000 1 -> 0\r
-ddcom754 compare 1.00001 1 -> 1\r
-ddcom755 compare 1.000001 1 -> 1\r
-ddcom756 compare 1.0000001 1 -> 1\r
-\r
--- Specials\r
-ddcom780 compare Inf -Inf -> 1\r
-ddcom781 compare Inf -1000 -> 1\r
-ddcom782 compare Inf -1 -> 1\r
-ddcom783 compare Inf -0 -> 1\r
-ddcom784 compare Inf 0 -> 1\r
-ddcom785 compare Inf 1 -> 1\r
-ddcom786 compare Inf 1000 -> 1\r
-ddcom787 compare Inf Inf -> 0\r
-ddcom788 compare -1000 Inf -> -1\r
-ddcom789 compare -Inf Inf -> -1\r
-ddcom790 compare -1 Inf -> -1\r
-ddcom791 compare -0 Inf -> -1\r
-ddcom792 compare 0 Inf -> -1\r
-ddcom793 compare 1 Inf -> -1\r
-ddcom794 compare 1000 Inf -> -1\r
-ddcom795 compare Inf Inf -> 0\r
-\r
-ddcom800 compare -Inf -Inf -> 0\r
-ddcom801 compare -Inf -1000 -> -1\r
-ddcom802 compare -Inf -1 -> -1\r
-ddcom803 compare -Inf -0 -> -1\r
-ddcom804 compare -Inf 0 -> -1\r
-ddcom805 compare -Inf 1 -> -1\r
-ddcom806 compare -Inf 1000 -> -1\r
-ddcom807 compare -Inf Inf -> -1\r
-ddcom808 compare -Inf -Inf -> 0\r
-ddcom809 compare -1000 -Inf -> 1\r
-ddcom810 compare -1 -Inf -> 1\r
-ddcom811 compare -0 -Inf -> 1\r
-ddcom812 compare 0 -Inf -> 1\r
-ddcom813 compare 1 -Inf -> 1\r
-ddcom814 compare 1000 -Inf -> 1\r
-ddcom815 compare Inf -Inf -> 1\r
-\r
-ddcom821 compare NaN -Inf -> NaN\r
-ddcom822 compare NaN -1000 -> NaN\r
-ddcom823 compare NaN -1 -> NaN\r
-ddcom824 compare NaN -0 -> NaN\r
-ddcom825 compare NaN 0 -> NaN\r
-ddcom826 compare NaN 1 -> NaN\r
-ddcom827 compare NaN 1000 -> NaN\r
-ddcom828 compare NaN Inf -> NaN\r
-ddcom829 compare NaN NaN -> NaN\r
-ddcom830 compare -Inf NaN -> NaN\r
-ddcom831 compare -1000 NaN -> NaN\r
-ddcom832 compare -1 NaN -> NaN\r
-ddcom833 compare -0 NaN -> NaN\r
-ddcom834 compare 0 NaN -> NaN\r
-ddcom835 compare 1 NaN -> NaN\r
-ddcom836 compare 1000 NaN -> NaN\r
-ddcom837 compare Inf NaN -> NaN\r
-ddcom838 compare -NaN -NaN -> -NaN\r
-ddcom839 compare +NaN -NaN -> NaN\r
-ddcom840 compare -NaN +NaN -> -NaN\r
-\r
-ddcom841 compare sNaN -Inf -> NaN Invalid_operation\r
-ddcom842 compare sNaN -1000 -> NaN Invalid_operation\r
-ddcom843 compare sNaN -1 -> NaN Invalid_operation\r
-ddcom844 compare sNaN -0 -> NaN Invalid_operation\r
-ddcom845 compare sNaN 0 -> NaN Invalid_operation\r
-ddcom846 compare sNaN 1 -> NaN Invalid_operation\r
-ddcom847 compare sNaN 1000 -> NaN Invalid_operation\r
-ddcom848 compare sNaN NaN -> NaN Invalid_operation\r
-ddcom849 compare sNaN sNaN -> NaN Invalid_operation\r
-ddcom850 compare NaN sNaN -> NaN Invalid_operation\r
-ddcom851 compare -Inf sNaN -> NaN Invalid_operation\r
-ddcom852 compare -1000 sNaN -> NaN Invalid_operation\r
-ddcom853 compare -1 sNaN -> NaN Invalid_operation\r
-ddcom854 compare -0 sNaN -> NaN Invalid_operation\r
-ddcom855 compare 0 sNaN -> NaN Invalid_operation\r
-ddcom856 compare 1 sNaN -> NaN Invalid_operation\r
-ddcom857 compare 1000 sNaN -> NaN Invalid_operation\r
-ddcom858 compare Inf sNaN -> NaN Invalid_operation\r
-ddcom859 compare NaN sNaN -> NaN Invalid_operation\r
-\r
--- propagating NaNs\r
-ddcom860 compare NaN9 -Inf -> NaN9\r
-ddcom861 compare NaN8 999 -> NaN8\r
-ddcom862 compare NaN77 Inf -> NaN77\r
-ddcom863 compare -NaN67 NaN5 -> -NaN67\r
-ddcom864 compare -Inf -NaN4 -> -NaN4\r
-ddcom865 compare -999 -NaN33 -> -NaN33\r
-ddcom866 compare Inf NaN2 -> NaN2\r
-ddcom867 compare -NaN41 -NaN42 -> -NaN41\r
-ddcom868 compare +NaN41 -NaN42 -> NaN41\r
-ddcom869 compare -NaN41 +NaN42 -> -NaN41\r
-ddcom870 compare +NaN41 +NaN42 -> NaN41\r
-\r
-ddcom871 compare -sNaN99 -Inf -> -NaN99 Invalid_operation\r
-ddcom872 compare sNaN98 -11 -> NaN98 Invalid_operation\r
-ddcom873 compare sNaN97 NaN -> NaN97 Invalid_operation\r
-ddcom874 compare sNaN16 sNaN94 -> NaN16 Invalid_operation\r
-ddcom875 compare NaN85 sNaN83 -> NaN83 Invalid_operation\r
-ddcom876 compare -Inf sNaN92 -> NaN92 Invalid_operation\r
-ddcom877 compare 088 sNaN81 -> NaN81 Invalid_operation\r
-ddcom878 compare Inf sNaN90 -> NaN90 Invalid_operation\r
-ddcom879 compare NaN -sNaN89 -> -NaN89 Invalid_operation\r
-\r
--- wide range\r
-ddcom880 compare +1.23456789012345E-0 9E+384 -> -1\r
-ddcom881 compare 9E+384 +1.23456789012345E-0 -> 1\r
-ddcom882 compare +0.100 9E-383 -> 1\r
-ddcom883 compare 9E-383 +0.100 -> -1\r
-ddcom885 compare -1.23456789012345E-0 9E+384 -> -1\r
-ddcom886 compare 9E+384 -1.23456789012345E-0 -> 1\r
-ddcom887 compare -0.100 9E-383 -> -1\r
-ddcom888 compare 9E-383 -0.100 -> 1\r
-\r
--- spread zeros\r
-ddcom900 compare 0E-383 0 -> 0\r
-ddcom901 compare 0E-383 -0 -> 0\r
-ddcom902 compare -0E-383 0 -> 0\r
-ddcom903 compare -0E-383 -0 -> 0\r
-ddcom904 compare 0E-383 0E+384 -> 0\r
-ddcom905 compare 0E-383 -0E+384 -> 0\r
-ddcom906 compare -0E-383 0E+384 -> 0\r
-ddcom907 compare -0E-383 -0E+384 -> 0\r
-ddcom908 compare 0 0E+384 -> 0\r
-ddcom909 compare 0 -0E+384 -> 0\r
-ddcom910 compare -0 0E+384 -> 0\r
-ddcom911 compare -0 -0E+384 -> 0\r
-ddcom930 compare 0E+384 0 -> 0\r
-ddcom931 compare 0E+384 -0 -> 0\r
-ddcom932 compare -0E+384 0 -> 0\r
-ddcom933 compare -0E+384 -0 -> 0\r
-ddcom934 compare 0E+384 0E-383 -> 0\r
-ddcom935 compare 0E+384 -0E-383 -> 0\r
-ddcom936 compare -0E+384 0E-383 -> 0\r
-ddcom937 compare -0E+384 -0E-383 -> 0\r
-ddcom938 compare 0 0E-383 -> 0\r
-ddcom939 compare 0 -0E-383 -> 0\r
-ddcom940 compare -0 0E-383 -> 0\r
-ddcom941 compare -0 -0E-383 -> 0\r
-\r
--- signs\r
-ddcom961 compare 1e+77 1e+11 -> 1\r
-ddcom962 compare 1e+77 -1e+11 -> 1\r
-ddcom963 compare -1e+77 1e+11 -> -1\r
-ddcom964 compare -1e+77 -1e+11 -> -1\r
-ddcom965 compare 1e-77 1e-11 -> -1\r
-ddcom966 compare 1e-77 -1e-11 -> 1\r
-ddcom967 compare -1e-77 1e-11 -> -1\r
-ddcom968 compare -1e-77 -1e-11 -> 1\r
-\r
--- full alignment range, both ways\r
-ddcomp1001 compare 1 1.000000000000000 -> 0\r
-ddcomp1002 compare 1 1.00000000000000 -> 0\r
-ddcomp1003 compare 1 1.0000000000000 -> 0\r
-ddcomp1004 compare 1 1.000000000000 -> 0\r
-ddcomp1005 compare 1 1.00000000000 -> 0\r
-ddcomp1006 compare 1 1.0000000000 -> 0\r
-ddcomp1007 compare 1 1.000000000 -> 0\r
-ddcomp1008 compare 1 1.00000000 -> 0\r
-ddcomp1009 compare 1 1.0000000 -> 0\r
-ddcomp1010 compare 1 1.000000 -> 0\r
-ddcomp1011 compare 1 1.00000 -> 0\r
-ddcomp1012 compare 1 1.0000 -> 0\r
-ddcomp1013 compare 1 1.000 -> 0\r
-ddcomp1014 compare 1 1.00 -> 0\r
-ddcomp1015 compare 1 1.0 -> 0\r
-ddcomp1021 compare 1.000000000000000 1 -> 0\r
-ddcomp1022 compare 1.00000000000000 1 -> 0\r
-ddcomp1023 compare 1.0000000000000 1 -> 0\r
-ddcomp1024 compare 1.000000000000 1 -> 0\r
-ddcomp1025 compare 1.00000000000 1 -> 0\r
-ddcomp1026 compare 1.0000000000 1 -> 0\r
-ddcomp1027 compare 1.000000000 1 -> 0\r
-ddcomp1028 compare 1.00000000 1 -> 0\r
-ddcomp1029 compare 1.0000000 1 -> 0\r
-ddcomp1030 compare 1.000000 1 -> 0\r
-ddcomp1031 compare 1.00000 1 -> 0\r
-ddcomp1032 compare 1.0000 1 -> 0\r
-ddcomp1033 compare 1.000 1 -> 0\r
-ddcomp1034 compare 1.00 1 -> 0\r
-ddcomp1035 compare 1.0 1 -> 0\r
-\r
--- check MSD always detected non-zero\r
-ddcomp1040 compare 0 0.000000000000000 -> 0\r
-ddcomp1041 compare 0 1.000000000000000 -> -1\r
-ddcomp1042 compare 0 2.000000000000000 -> -1\r
-ddcomp1043 compare 0 3.000000000000000 -> -1\r
-ddcomp1044 compare 0 4.000000000000000 -> -1\r
-ddcomp1045 compare 0 5.000000000000000 -> -1\r
-ddcomp1046 compare 0 6.000000000000000 -> -1\r
-ddcomp1047 compare 0 7.000000000000000 -> -1\r
-ddcomp1048 compare 0 8.000000000000000 -> -1\r
-ddcomp1049 compare 0 9.000000000000000 -> -1\r
-ddcomp1050 compare 0.000000000000000 0 -> 0\r
-ddcomp1051 compare 1.000000000000000 0 -> 1\r
-ddcomp1052 compare 2.000000000000000 0 -> 1\r
-ddcomp1053 compare 3.000000000000000 0 -> 1\r
-ddcomp1054 compare 4.000000000000000 0 -> 1\r
-ddcomp1055 compare 5.000000000000000 0 -> 1\r
-ddcomp1056 compare 6.000000000000000 0 -> 1\r
-ddcomp1057 compare 7.000000000000000 0 -> 1\r
-ddcomp1058 compare 8.000000000000000 0 -> 1\r
-ddcomp1059 compare 9.000000000000000 0 -> 1\r
-\r
--- Null tests\r
-ddcom9990 compare 10 # -> NaN Invalid_operation\r
-ddcom9991 compare # 10 -> NaN Invalid_operation\r