Update to 2.7.3
[profile/ivi/python.git] / Lib / test / decimaltestdata / ddCanonical.decTest
index 824de83..b4f9e32 100644 (file)
-------------------------------------------------------------------------\r
--- ddCanonical.decTest -- test decDouble canonical results            --\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
--- This file tests that copy operations leave uncanonical operands\r
--- unchanged, and vice versa\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
--- Uncanonical declets are: abc, where:\r
---   a=1,2,3\r
---   b=6,7,e,f\r
---   c=e,f\r
-\r
--- assert some standard (canonical) values; this tests that FromString\r
--- produces canonical results (many more in decimalNN)\r
-ddcan001 apply 9.999999999999999E+384 -> #77fcff3fcff3fcff\r
-ddcan002 apply 0                      -> #2238000000000000\r
-ddcan003 apply 1                      -> #2238000000000001\r
-ddcan004 apply -1                     -> #a238000000000001\r
-ddcan005 apply Infinity               -> #7800000000000000\r
-ddcan006 apply -Infinity              -> #f800000000000000\r
-ddcan007 apply -NaN                   -> #fc00000000000000\r
-ddcan008 apply -sNaN                  -> #fe00000000000000\r
-ddcan009 apply NaN999999999999999     -> #7c00ff3fcff3fcff\r
-ddcan010 apply sNaN999999999999999    -> #7e00ff3fcff3fcff\r
-decan011 apply  9999999999999999      -> #6e38ff3fcff3fcff\r
-ddcan012 apply 7.50                   -> #22300000000003d0\r
-ddcan013 apply 9.99                   -> #22300000000000ff\r
-\r
--- Base tests for canonical encodings (individual operator\r
--- propagation is tested later)\r
-\r
--- Finites: declets in coefficient\r
-ddcan021 canonical  #77fcff3fcff3fcff  -> #77fcff3fcff3fcff\r
-ddcan022 canonical  #77fcff3fcff3fcff  -> #77fcff3fcff3fcff\r
-ddcan023 canonical  #77ffff3fcff3fcff  -> #77fcff3fcff3fcff\r
-ddcan024 canonical  #77ffff3fcff3fcff  -> #77fcff3fcff3fcff\r
-ddcan025 canonical  #77fcffffcff3fcff  -> #77fcff3fcff3fcff\r
-ddcan026 canonical  #77fcffffcff3fcff  -> #77fcff3fcff3fcff\r
-ddcan027 canonical  #77fcff3ffff3fcff  -> #77fcff3fcff3fcff\r
-ddcan028 canonical  #77fcff3ffff3fcff  -> #77fcff3fcff3fcff\r
-ddcan030 canonical  #77fcff3fcffffcff  -> #77fcff3fcff3fcff\r
-ddcan031 canonical  #77fcff3fcffffcff  -> #77fcff3fcff3fcff\r
-ddcan032 canonical  #77fcff3fcff3ffff  -> #77fcff3fcff3fcff\r
-ddcan033 canonical  #77fcff3fcff3ffff  -> #77fcff3fcff3fcff\r
-ddcan035 canonical  #77fcff3fdff3fcff  -> #77fcff3fcff3fcff\r
-ddcan036 canonical  #77fcff3feff3fcff  -> #77fcff3fcff3fcff\r
-\r
--- NaN: declets in payload\r
-ddcan100 canonical  NaN999999999999999 -> #7c00ff3fcff3fcff\r
-ddcan101 canonical  #7c00ff3fcff3fcff  -> #7c00ff3fcff3fcff\r
-ddcan102 canonical  #7c03ff3fcff3fcff  -> #7c00ff3fcff3fcff\r
-ddcan103 canonical  #7c00ffffcff3fcff  -> #7c00ff3fcff3fcff\r
-ddcan104 canonical  #7c00ff3ffff3fcff  -> #7c00ff3fcff3fcff\r
-ddcan105 canonical  #7c00ff3fcffffcff  -> #7c00ff3fcff3fcff\r
-ddcan106 canonical  #7c00ff3fcff3ffff  -> #7c00ff3fcff3fcff\r
-ddcan107 canonical  #7c00ff3fcff3ffff  -> #7c00ff3fcff3fcff\r
--- NaN: exponent continuation bits [excluding sNaN selector]\r
-ddcan110 canonical  #7c00ff3fcff3fcff  -> #7c00ff3fcff3fcff\r
-ddcan112 canonical  #7d00ff3fcff3fcff  -> #7c00ff3fcff3fcff\r
-ddcan113 canonical  #7c80ff3fcff3fcff  -> #7c00ff3fcff3fcff\r
-ddcan114 canonical  #7c40ff3fcff3fcff  -> #7c00ff3fcff3fcff\r
-ddcan115 canonical  #7c20ff3fcff3fcff  -> #7c00ff3fcff3fcff\r
-ddcan116 canonical  #7c10ff3fcff3fcff  -> #7c00ff3fcff3fcff\r
-ddcan117 canonical  #7c08ff3fcff3fcff  -> #7c00ff3fcff3fcff\r
-ddcan118 canonical  #7c04ff3fcff3fcff  -> #7c00ff3fcff3fcff\r
-\r
--- sNaN: declets in payload\r
-ddcan120 canonical sNaN999999999999999 -> #7e00ff3fcff3fcff\r
-ddcan121 canonical  #7e00ff3fcff3fcff  -> #7e00ff3fcff3fcff\r
-ddcan122 canonical  #7e03ff3fcff3fcff  -> #7e00ff3fcff3fcff\r
-ddcan123 canonical  #7e00ffffcff3fcff  -> #7e00ff3fcff3fcff\r
-ddcan124 canonical  #7e00ff3ffff3fcff  -> #7e00ff3fcff3fcff\r
-ddcan125 canonical  #7e00ff3fcffffcff  -> #7e00ff3fcff3fcff\r
-ddcan126 canonical  #7e00ff3fcff3ffff  -> #7e00ff3fcff3fcff\r
-ddcan127 canonical  #7e00ff3fcff3ffff  -> #7e00ff3fcff3fcff\r
--- sNaN: exponent continuation bits [excluding sNaN selector]\r
-ddcan130 canonical  #7e00ff3fcff3fcff  -> #7e00ff3fcff3fcff\r
-ddcan132 canonical  #7f00ff3fcff3fcff  -> #7e00ff3fcff3fcff\r
-ddcan133 canonical  #7e80ff3fcff3fcff  -> #7e00ff3fcff3fcff\r
-ddcan134 canonical  #7e40ff3fcff3fcff  -> #7e00ff3fcff3fcff\r
-ddcan135 canonical  #7e20ff3fcff3fcff  -> #7e00ff3fcff3fcff\r
-ddcan136 canonical  #7e10ff3fcff3fcff  -> #7e00ff3fcff3fcff\r
-ddcan137 canonical  #7e08ff3fcff3fcff  -> #7e00ff3fcff3fcff\r
-ddcan138 canonical  #7e04ff3fcff3fcff  -> #7e00ff3fcff3fcff\r
-\r
--- Inf: exponent continuation bits\r
-ddcan140 canonical  #7800000000000000  -> #7800000000000000\r
-ddcan141 canonical  #7900000000000000  -> #7800000000000000\r
-ddcan142 canonical  #7a00000000000000  -> #7800000000000000\r
-ddcan143 canonical  #7880000000000000  -> #7800000000000000\r
-ddcan144 canonical  #7840000000000000  -> #7800000000000000\r
-ddcan145 canonical  #7820000000000000  -> #7800000000000000\r
-ddcan146 canonical  #7810000000000000  -> #7800000000000000\r
-ddcan147 canonical  #7808000000000000  -> #7800000000000000\r
-ddcan148 canonical  #7804000000000000  -> #7800000000000000\r
-\r
--- Inf: coefficient continuation bits (first, last, and a few others)\r
-ddcan150 canonical  #7800000000000000  -> #7800000000000000\r
-ddcan151 canonical  #7802000000000000  -> #7800000000000000\r
-ddcan152 canonical  #7800000000000001  -> #7800000000000000\r
-ddcan153 canonical  #7801000000000000  -> #7800000000000000\r
-ddcan154 canonical  #7800200000000000  -> #7800000000000000\r
-ddcan155 canonical  #7800080000000000  -> #7800000000000000\r
-ddcan156 canonical  #7800002000000000  -> #7800000000000000\r
-ddcan157 canonical  #7800000400000000  -> #7800000000000000\r
-ddcan158 canonical  #7800000040000000  -> #7800000000000000\r
-ddcan159 canonical  #7800000008000000  -> #7800000000000000\r
-ddcan160 canonical  #7800000000400000  -> #7800000000000000\r
-ddcan161 canonical  #7800000000020000  -> #7800000000000000\r
-ddcan162 canonical  #7800000000008000  -> #7800000000000000\r
-ddcan163 canonical  #7800000000000200  -> #7800000000000000\r
-ddcan164 canonical  #7800000000000040  -> #7800000000000000\r
-ddcan165 canonical  #7800000000000008  -> #7800000000000000\r
-\r
-\r
--- Now the operators -- trying to check paths that might fail to\r
--- canonicalize propagated operands\r
-\r
------ Add:\r
--- Finites: neutral 0\r
-ddcan202 add  0E+384 #77ffff3fcff3fcff        -> #77fcff3fcff3fcff\r
-ddcan203 add         #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff\r
--- tiny zero\r
-ddcan204 add  0E-398 #77ffff3fcff3fcff        -> #77fcff3fcff3fcff Rounded\r
-ddcan205 add         #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded\r
--- tiny non zero\r
-ddcan206 add -1E-398 #77ffff3fcff3fcff         -> #77fcff3fcff3fcff Inexact Rounded\r
-ddcan207 add         #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded\r
--- NaN: declets in payload\r
-ddcan211 add  0  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff\r
-ddcan212 add     #7c03ff3fcff3fcff  0   -> #7c00ff3fcff3fcff\r
--- NaN: exponent continuation bits [excluding sNaN selector]\r
-ddcan213 add  0  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff\r
-ddcan214 add     #7c40ff3fcff3fcff  0   -> #7c00ff3fcff3fcff\r
--- sNaN: declets in payload\r
-ddcan215 add  0  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation\r
-ddcan216 add     #7e00ffffcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation\r
--- sNaN: exponent continuation bits [excluding sNaN selector]\r
-ddcan217 add  0  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation\r
-ddcan218 add     #7e80ff3fcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation\r
--- Inf: exponent continuation bits\r
-ddcan220 add  0  #7880000000000000      -> #7800000000000000\r
-ddcan221 add     #7880000000000000  0   -> #7800000000000000\r
--- Inf: coefficient continuation bits\r
-ddcan222 add  0  #7802000000000000     -> #7800000000000000\r
-ddcan223 add     #7802000000000000  0  -> #7800000000000000\r
-ddcan224 add  0  #7800000000000001     -> #7800000000000000\r
-ddcan225 add     #7800000000000001  0  -> #7800000000000000\r
-ddcan226 add  0  #7800002000000000     -> #7800000000000000\r
-ddcan227 add     #7800002000000000  0  -> #7800000000000000\r
-\r
------ Class: [does not return encoded]\r
-\r
------ Compare:\r
-ddcan231 compare -Inf   1     ->  #a238000000000001\r
-ddcan232 compare -Inf  -Inf   ->  #2238000000000000\r
-ddcan233 compare  1    -Inf   ->  #2238000000000001\r
-ddcan234 compare  #7c00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff\r
-ddcan235 compare  #7e00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation\r
-\r
------ CompareSig:\r
-ddcan241 comparesig -Inf   1     ->  #a238000000000001\r
-ddcan242 comparesig -Inf  -Inf   ->  #2238000000000000\r
-ddcan243 comparesig  1    -Inf   ->  #2238000000000001\r
-ddcan244 comparesig  #7c00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation\r
-ddcan245 comparesig  #7e00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation\r
-\r
------ Copy: [does not usually canonicalize]\r
--- finites\r
-ddcan250 copy  #77ffff3fcff3fcff  -> #77ffff3fcff3fcff\r
-ddcan251 copy  #77fcff3fdff3fcff  -> #77fcff3fdff3fcff\r
--- NaNs\r
-ddcan252 copy  #7c03ff3fcff3fcff  -> #7c03ff3fcff3fcff\r
-ddcan253 copy  #7c00ff3fcff3ffff  -> #7c00ff3fcff3ffff\r
-ddcan254 copy  #7d00ff3fcff3fcff  -> #7d00ff3fcff3fcff\r
-ddcan255 copy  #7c04ff3fcff3fcff  -> #7c04ff3fcff3fcff\r
--- sNaN\r
-ddcan256 copy  #7e00ff3fcffffcff  -> #7e00ff3fcffffcff\r
-ddcan257 copy  #7e40ff3fcff3fcff  -> #7e40ff3fcff3fcff\r
--- Inf\r
-ddcan258 copy  #7a00000000000000  -> #7a00000000000000\r
-ddcan259 copy  #7800200000000000  -> #7800200000000000\r
-\r
------ CopyAbs: [does not usually canonicalize]\r
--- finites\r
-ddcan260 copyabs  #f7ffff3fcff3fcff  -> #77ffff3fcff3fcff\r
-ddcan261 copyabs  #f7fcff3fdff3fcff  -> #77fcff3fdff3fcff\r
--- NaNs\r
-ddcan262 copyabs  #fc03ff3fcff3fcff  -> #7c03ff3fcff3fcff\r
-ddcan263 copyabs  #fc00ff3fcff3ffff  -> #7c00ff3fcff3ffff\r
-ddcan264 copyabs  #fd00ff3fcff3fcff  -> #7d00ff3fcff3fcff\r
-ddcan265 copyabs  #fc04ff3fcff3fcff  -> #7c04ff3fcff3fcff\r
--- sNaN\r
-ddcan266 copyabs  #fe00ff3fcffffcff  -> #7e00ff3fcffffcff\r
-ddcan267 copyabs  #fe40ff3fcff3fcff  -> #7e40ff3fcff3fcff\r
--- Inf\r
-ddcan268 copyabs  #fa00000000000000  -> #7a00000000000000\r
-ddcan269 copyabs  #f800200000000000  -> #7800200000000000\r
-\r
------ CopyNegate: [does not usually canonicalize]\r
--- finites\r
-ddcan270 copynegate  #77ffff3fcff3fcff  -> #f7ffff3fcff3fcff\r
-ddcan271 copynegate  #77fcff3fdff3fcff  -> #f7fcff3fdff3fcff\r
--- NaNs\r
-ddcan272 copynegate  #7c03ff3fcff3fcff  -> #fc03ff3fcff3fcff\r
-ddcan273 copynegate  #7c00ff3fcff3ffff  -> #fc00ff3fcff3ffff\r
-ddcan274 copynegate  #7d00ff3fcff3fcff  -> #fd00ff3fcff3fcff\r
-ddcan275 copynegate  #7c04ff3fcff3fcff  -> #fc04ff3fcff3fcff\r
--- sNaN\r
-ddcan276 copynegate  #7e00ff3fcffffcff  -> #fe00ff3fcffffcff\r
-ddcan277 copynegate  #7e40ff3fcff3fcff  -> #fe40ff3fcff3fcff\r
--- Inf\r
-ddcan278 copynegate  #7a00000000000000  -> #fa00000000000000\r
-ddcan279 copynegate  #7800200000000000  -> #f800200000000000\r
-\r
------ CopySign: [does not usually canonicalize]\r
--- finites\r
-ddcan280 copysign  #77ffff3fcff3fcff -1 -> #f7ffff3fcff3fcff\r
-ddcan281 copysign  #77fcff3fdff3fcff  1 -> #77fcff3fdff3fcff\r
--- NaNs\r
-ddcan282 copysign  #7c03ff3fcff3fcff -1 -> #fc03ff3fcff3fcff\r
-ddcan283 copysign  #7c00ff3fcff3ffff  1 -> #7c00ff3fcff3ffff\r
-ddcan284 copysign  #7d00ff3fcff3fcff -1 -> #fd00ff3fcff3fcff\r
-ddcan285 copysign  #7c04ff3fcff3fcff  1 -> #7c04ff3fcff3fcff\r
--- sNaN\r
-ddcan286 copysign  #7e00ff3fcffffcff -1 -> #fe00ff3fcffffcff\r
-ddcan287 copysign  #7e40ff3fcff3fcff  1 -> #7e40ff3fcff3fcff\r
--- Inf\r
-ddcan288 copysign  #7a00000000000000 -1 -> #fa00000000000000\r
-ddcan289 copysign  #7800200000000000  1 -> #7800200000000000\r
-\r
------ Multiply:\r
--- Finites: neutral 0\r
-ddcan302 multiply  1      #77ffff3fcff3fcff        -> #77fcff3fcff3fcff\r
-ddcan303 multiply         #77fcffffcff3fcff  1     -> #77fcff3fcff3fcff\r
--- negative\r
-ddcan306 multiply -1      #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff\r
-ddcan307 multiply         #77fcffffcff3fcff -1     -> #f7fcff3fcff3fcff\r
--- NaN: declets in payload\r
-ddcan311 multiply  1  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff\r
-ddcan312 multiply     #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff\r
--- NaN: exponent continuation bits [excluding sNaN selector]\r
-ddcan313 multiply  1  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff\r
-ddcan314 multiply     #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff\r
--- sNaN: declets in payload\r
-ddcan315 multiply  1  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation\r
-ddcan316 multiply     #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation\r
--- sNaN: exponent continuation bits [excluding sNaN selector]\r
-ddcan317 multiply  1  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation\r
-ddcan318 multiply     #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation\r
--- Inf: exponent continuation bits\r
-ddcan320 multiply  1  #7880000000000000      -> #7800000000000000\r
-ddcan321 multiply     #7880000000000000  1   -> #7800000000000000\r
--- Inf: coefficient continuation bits\r
-ddcan322 multiply  1  #7802000000000000     -> #7800000000000000\r
-ddcan323 multiply     #7802000000000000  1  -> #7800000000000000\r
-ddcan324 multiply  1  #7800000000000001     -> #7800000000000000\r
-ddcan325 multiply     #7800000000000001  1  -> #7800000000000000\r
-ddcan326 multiply  1  #7800002000000000     -> #7800000000000000\r
-ddcan327 multiply     #7800002000000000  1  -> #7800000000000000\r
-\r
------ Quantize:\r
-ddcan401 quantize  #6e38ff3ffff3fcff 1    -> #6e38ff3fcff3fcff\r
-ddcan402 quantize  #6e38ff3fcff3fdff 0    -> #6e38ff3fcff3fcff\r
-ddcan403 quantize  #7880000000000000 Inf  -> #7800000000000000\r
-ddcan404 quantize  #7802000000000000 -Inf -> #7800000000000000\r
-ddcan410 quantize  #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff\r
-ddcan411 quantize  #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff\r
-ddcan412 quantize  #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff\r
-ddcan413 quantize  #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff\r
-ddcan414 quantize  #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation\r
-ddcan415 quantize  #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation\r
-ddcan416 quantize  #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation\r
-ddcan417 quantize  #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation\r
-\r
------ Subtract:\r
--- Finites: neutral 0\r
-ddcan502 subtract  0E+384 #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff\r
-ddcan503 subtract         #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff\r
--- tiny zero\r
-ddcan504 subtract  0E-398 #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff Rounded\r
-ddcan505 subtract         #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded\r
--- tiny non zero\r
-ddcan506 subtract -1E-398 #77ffff3fcff3fcff         -> #f7fcff3fcff3fcff Inexact Rounded\r
-ddcan507 subtract         #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded\r
--- NaN: declets in payload\r
-ddcan511 subtract  0  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff\r
-ddcan512 subtract     #7c03ff3fcff3fcff  0   -> #7c00ff3fcff3fcff\r
--- NaN: exponent continuation bits [excluding sNaN selector]\r
-ddcan513 subtract  0  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff\r
-ddcan514 subtract     #7c40ff3fcff3fcff  0   -> #7c00ff3fcff3fcff\r
--- sNaN: declets in payload\r
-ddcan515 subtract  0  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation\r
-ddcan516 subtract     #7e00ffffcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation\r
--- sNaN: exponent continuation bits [excluding sNaN selector]\r
-ddcan517 subtract  0  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation\r
-ddcan518 subtract     #7e80ff3fcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation\r
--- Inf: exponent continuation bits\r
-ddcan520 subtract  0  #7880000000000000      -> #f800000000000000\r
-ddcan521 subtract     #7880000000000000  0   -> #7800000000000000\r
--- Inf: coefficient continuation bits\r
-ddcan522 subtract  0  #7802000000000000     -> #f800000000000000\r
-ddcan523 subtract     #7802000000000000  0  -> #7800000000000000\r
-ddcan524 subtract  0  #7800000000000001     -> #f800000000000000\r
-ddcan525 subtract     #7800000000000001  0  -> #7800000000000000\r
-ddcan526 subtract  0  #7800002000000000     -> #f800000000000000\r
-ddcan527 subtract     #7800002000000000  0  -> #7800000000000000\r
-\r
------ ToIntegral:\r
-ddcan601 tointegralx  #6e38ff3ffff3fcff -> #6e38ff3fcff3fcff\r
-ddcan602 tointegralx  #6e38ff3fcff3fdff -> #6e38ff3fcff3fcff\r
-ddcan603 tointegralx  #7880000000000000 -> #7800000000000000\r
-ddcan604 tointegralx  #7802000000000000 -> #7800000000000000\r
-ddcan610 tointegralx  #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff\r
-ddcan611 tointegralx  #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff\r
-ddcan612 tointegralx  #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff\r
-ddcan613 tointegralx  #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff\r
-ddcan614 tointegralx  #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation\r
-ddcan615 tointegralx  #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation\r
-ddcan616 tointegralx  #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation\r
-ddcan617 tointegralx  #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation\r
--- uncanonical 3999, 39.99, 3.99, 0.399, and negatives\r
-ddcan618 tointegralx  #2238000000000fff -> #2238000000000cff\r
-ddcan619 tointegralx  #2230000000000fff -> #2238000000000040 Inexact Rounded\r
-ddcan620 tointegralx  #222c000000000fff -> #2238000000000004 Inexact Rounded\r
-ddcan621 tointegralx  #2228000000000fff -> #2238000000000000 Inexact Rounded\r
-ddcan622 tointegralx  #a238000000000fff -> #a238000000000cff\r
-ddcan623 tointegralx  #a230000000000fff -> #a238000000000040 Inexact Rounded\r
-ddcan624 tointegralx  #a22c000000000fff -> #a238000000000004 Inexact Rounded\r
-ddcan625 tointegralx  #a228000000000fff -> #a238000000000000 Inexact Rounded\r
-\r
-\r
-\r
+------------------------------------------------------------------------
+-- ddCanonical.decTest -- test decDouble canonical results            --
+-- 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.59
+
+-- This file tests that copy operations leave uncanonical operands
+-- unchanged, and vice versa
+-- All operands and results are decDoubles.
+precision:   16
+maxExponent: 384
+minExponent: -383
+extended:    1
+clamp:       1
+rounding:    half_even
+
+-- Uncanonical declets are: abc, where:
+--   a=1,2,3
+--   b=6,7,e,f
+--   c=e,f
+
+-- assert some standard (canonical) values; this tests that FromString
+-- produces canonical results (many more in decimalNN)
+ddcan001 apply 9.999999999999999E+384 -> #77fcff3fcff3fcff
+ddcan002 apply 0                      -> #2238000000000000
+ddcan003 apply 1                      -> #2238000000000001
+ddcan004 apply -1                     -> #a238000000000001
+ddcan005 apply Infinity               -> #7800000000000000
+ddcan006 apply -Infinity              -> #f800000000000000
+ddcan007 apply -NaN                   -> #fc00000000000000
+ddcan008 apply -sNaN                  -> #fe00000000000000
+ddcan009 apply NaN999999999999999     -> #7c00ff3fcff3fcff
+ddcan010 apply sNaN999999999999999    -> #7e00ff3fcff3fcff
+decan011 apply  9999999999999999      -> #6e38ff3fcff3fcff
+ddcan012 apply 7.50                   -> #22300000000003d0
+ddcan013 apply 9.99                   -> #22300000000000ff
+
+-- Base tests for canonical encodings (individual operator
+-- propagation is tested later)
+
+-- Finites: declets in coefficient
+ddcan021 canonical  #77fcff3fcff3fcff  -> #77fcff3fcff3fcff
+ddcan022 canonical  #77fcff3fcff3fcff  -> #77fcff3fcff3fcff
+ddcan023 canonical  #77ffff3fcff3fcff  -> #77fcff3fcff3fcff
+ddcan024 canonical  #77ffff3fcff3fcff  -> #77fcff3fcff3fcff
+ddcan025 canonical  #77fcffffcff3fcff  -> #77fcff3fcff3fcff
+ddcan026 canonical  #77fcffffcff3fcff  -> #77fcff3fcff3fcff
+ddcan027 canonical  #77fcff3ffff3fcff  -> #77fcff3fcff3fcff
+ddcan028 canonical  #77fcff3ffff3fcff  -> #77fcff3fcff3fcff
+ddcan030 canonical  #77fcff3fcffffcff  -> #77fcff3fcff3fcff
+ddcan031 canonical  #77fcff3fcffffcff  -> #77fcff3fcff3fcff
+ddcan032 canonical  #77fcff3fcff3ffff  -> #77fcff3fcff3fcff
+ddcan033 canonical  #77fcff3fcff3ffff  -> #77fcff3fcff3fcff
+ddcan035 canonical  #77fcff3fdff3fcff  -> #77fcff3fcff3fcff
+ddcan036 canonical  #77fcff3feff3fcff  -> #77fcff3fcff3fcff
+
+-- NaN: declets in payload
+ddcan100 canonical  NaN999999999999999 -> #7c00ff3fcff3fcff
+ddcan101 canonical  #7c00ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan102 canonical  #7c03ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan103 canonical  #7c00ffffcff3fcff  -> #7c00ff3fcff3fcff
+ddcan104 canonical  #7c00ff3ffff3fcff  -> #7c00ff3fcff3fcff
+ddcan105 canonical  #7c00ff3fcffffcff  -> #7c00ff3fcff3fcff
+ddcan106 canonical  #7c00ff3fcff3ffff  -> #7c00ff3fcff3fcff
+ddcan107 canonical  #7c00ff3fcff3ffff  -> #7c00ff3fcff3fcff
+-- NaN: exponent continuation bits [excluding sNaN selector]
+ddcan110 canonical  #7c00ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan112 canonical  #7d00ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan113 canonical  #7c80ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan114 canonical  #7c40ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan115 canonical  #7c20ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan116 canonical  #7c10ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan117 canonical  #7c08ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan118 canonical  #7c04ff3fcff3fcff  -> #7c00ff3fcff3fcff
+
+-- sNaN: declets in payload
+ddcan120 canonical sNaN999999999999999 -> #7e00ff3fcff3fcff
+ddcan121 canonical  #7e00ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan122 canonical  #7e03ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan123 canonical  #7e00ffffcff3fcff  -> #7e00ff3fcff3fcff
+ddcan124 canonical  #7e00ff3ffff3fcff  -> #7e00ff3fcff3fcff
+ddcan125 canonical  #7e00ff3fcffffcff  -> #7e00ff3fcff3fcff
+ddcan126 canonical  #7e00ff3fcff3ffff  -> #7e00ff3fcff3fcff
+ddcan127 canonical  #7e00ff3fcff3ffff  -> #7e00ff3fcff3fcff
+-- sNaN: exponent continuation bits [excluding sNaN selector]
+ddcan130 canonical  #7e00ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan132 canonical  #7f00ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan133 canonical  #7e80ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan134 canonical  #7e40ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan135 canonical  #7e20ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan136 canonical  #7e10ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan137 canonical  #7e08ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan138 canonical  #7e04ff3fcff3fcff  -> #7e00ff3fcff3fcff
+
+-- Inf: exponent continuation bits
+ddcan140 canonical  #7800000000000000  -> #7800000000000000
+ddcan141 canonical  #7900000000000000  -> #7800000000000000
+ddcan142 canonical  #7a00000000000000  -> #7800000000000000
+ddcan143 canonical  #7880000000000000  -> #7800000000000000
+ddcan144 canonical  #7840000000000000  -> #7800000000000000
+ddcan145 canonical  #7820000000000000  -> #7800000000000000
+ddcan146 canonical  #7810000000000000  -> #7800000000000000
+ddcan147 canonical  #7808000000000000  -> #7800000000000000
+ddcan148 canonical  #7804000000000000  -> #7800000000000000
+
+-- Inf: coefficient continuation bits (first, last, and a few others)
+ddcan150 canonical  #7800000000000000  -> #7800000000000000
+ddcan151 canonical  #7802000000000000  -> #7800000000000000
+ddcan152 canonical  #7800000000000001  -> #7800000000000000
+ddcan153 canonical  #7801000000000000  -> #7800000000000000
+ddcan154 canonical  #7800200000000000  -> #7800000000000000
+ddcan155 canonical  #7800080000000000  -> #7800000000000000
+ddcan156 canonical  #7800002000000000  -> #7800000000000000
+ddcan157 canonical  #7800000400000000  -> #7800000000000000
+ddcan158 canonical  #7800000040000000  -> #7800000000000000
+ddcan159 canonical  #7800000008000000  -> #7800000000000000
+ddcan160 canonical  #7800000000400000  -> #7800000000000000
+ddcan161 canonical  #7800000000020000  -> #7800000000000000
+ddcan162 canonical  #7800000000008000  -> #7800000000000000
+ddcan163 canonical  #7800000000000200  -> #7800000000000000
+ddcan164 canonical  #7800000000000040  -> #7800000000000000
+ddcan165 canonical  #7800000000000008  -> #7800000000000000
+
+
+-- Now the operators -- trying to check paths that might fail to
+-- canonicalize propagated operands
+
+----- Add:
+-- Finites: neutral 0
+ddcan202 add  0E+384 #77ffff3fcff3fcff        -> #77fcff3fcff3fcff
+ddcan203 add         #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff
+-- tiny zero
+ddcan204 add  0E-398 #77ffff3fcff3fcff        -> #77fcff3fcff3fcff Rounded
+ddcan205 add         #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded
+-- tiny non zero
+ddcan206 add -1E-398 #77ffff3fcff3fcff         -> #77fcff3fcff3fcff Inexact Rounded
+ddcan207 add         #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded
+-- NaN: declets in payload
+ddcan211 add  0  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff
+ddcan212 add     #7c03ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
+-- NaN: exponent continuation bits [excluding sNaN selector]
+ddcan213 add  0  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff
+ddcan214 add     #7c40ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
+-- sNaN: declets in payload
+ddcan215 add  0  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
+ddcan216 add     #7e00ffffcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
+-- sNaN: exponent continuation bits [excluding sNaN selector]
+ddcan217 add  0  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
+ddcan218 add     #7e80ff3fcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
+-- Inf: exponent continuation bits
+ddcan220 add  0  #7880000000000000      -> #7800000000000000
+ddcan221 add     #7880000000000000  0   -> #7800000000000000
+-- Inf: coefficient continuation bits
+ddcan222 add  0  #7802000000000000     -> #7800000000000000
+ddcan223 add     #7802000000000000  0  -> #7800000000000000
+ddcan224 add  0  #7800000000000001     -> #7800000000000000
+ddcan225 add     #7800000000000001  0  -> #7800000000000000
+ddcan226 add  0  #7800002000000000     -> #7800000000000000
+ddcan227 add     #7800002000000000  0  -> #7800000000000000
+
+----- Class: [does not return encoded]
+
+----- Compare:
+ddcan231 compare -Inf   1     ->  #a238000000000001
+ddcan232 compare -Inf  -Inf   ->  #2238000000000000
+ddcan233 compare  1    -Inf   ->  #2238000000000001
+ddcan234 compare  #7c00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff
+ddcan235 compare  #7e00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation
+
+----- CompareSig:
+ddcan241 comparesig -Inf   1     ->  #a238000000000001
+ddcan242 comparesig -Inf  -Inf   ->  #2238000000000000
+ddcan243 comparesig  1    -Inf   ->  #2238000000000001
+ddcan244 comparesig  #7c00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation
+ddcan245 comparesig  #7e00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation
+
+----- Copy: [does not usually canonicalize]
+-- finites
+ddcan250 copy  #77ffff3fcff3fcff  -> #77ffff3fcff3fcff
+ddcan251 copy  #77fcff3fdff3fcff  -> #77fcff3fdff3fcff
+-- NaNs
+ddcan252 copy  #7c03ff3fcff3fcff  -> #7c03ff3fcff3fcff
+ddcan253 copy  #7c00ff3fcff3ffff  -> #7c00ff3fcff3ffff
+ddcan254 copy  #7d00ff3fcff3fcff  -> #7d00ff3fcff3fcff
+ddcan255 copy  #7c04ff3fcff3fcff  -> #7c04ff3fcff3fcff
+-- sNaN
+ddcan256 copy  #7e00ff3fcffffcff  -> #7e00ff3fcffffcff
+ddcan257 copy  #7e40ff3fcff3fcff  -> #7e40ff3fcff3fcff
+-- Inf
+ddcan258 copy  #7a00000000000000  -> #7a00000000000000
+ddcan259 copy  #7800200000000000  -> #7800200000000000
+
+----- CopyAbs: [does not usually canonicalize]
+-- finites
+ddcan260 copyabs  #f7ffff3fcff3fcff  -> #77ffff3fcff3fcff
+ddcan261 copyabs  #f7fcff3fdff3fcff  -> #77fcff3fdff3fcff
+-- NaNs
+ddcan262 copyabs  #fc03ff3fcff3fcff  -> #7c03ff3fcff3fcff
+ddcan263 copyabs  #fc00ff3fcff3ffff  -> #7c00ff3fcff3ffff
+ddcan264 copyabs  #fd00ff3fcff3fcff  -> #7d00ff3fcff3fcff
+ddcan265 copyabs  #fc04ff3fcff3fcff  -> #7c04ff3fcff3fcff
+-- sNaN
+ddcan266 copyabs  #fe00ff3fcffffcff  -> #7e00ff3fcffffcff
+ddcan267 copyabs  #fe40ff3fcff3fcff  -> #7e40ff3fcff3fcff
+-- Inf
+ddcan268 copyabs  #fa00000000000000  -> #7a00000000000000
+ddcan269 copyabs  #f800200000000000  -> #7800200000000000
+
+----- CopyNegate: [does not usually canonicalize]
+-- finites
+ddcan270 copynegate  #77ffff3fcff3fcff  -> #f7ffff3fcff3fcff
+ddcan271 copynegate  #77fcff3fdff3fcff  -> #f7fcff3fdff3fcff
+-- NaNs
+ddcan272 copynegate  #7c03ff3fcff3fcff  -> #fc03ff3fcff3fcff
+ddcan273 copynegate  #7c00ff3fcff3ffff  -> #fc00ff3fcff3ffff
+ddcan274 copynegate  #7d00ff3fcff3fcff  -> #fd00ff3fcff3fcff
+ddcan275 copynegate  #7c04ff3fcff3fcff  -> #fc04ff3fcff3fcff
+-- sNaN
+ddcan276 copynegate  #7e00ff3fcffffcff  -> #fe00ff3fcffffcff
+ddcan277 copynegate  #7e40ff3fcff3fcff  -> #fe40ff3fcff3fcff
+-- Inf
+ddcan278 copynegate  #7a00000000000000  -> #fa00000000000000
+ddcan279 copynegate  #7800200000000000  -> #f800200000000000
+
+----- CopySign: [does not usually canonicalize]
+-- finites
+ddcan280 copysign  #77ffff3fcff3fcff -1 -> #f7ffff3fcff3fcff
+ddcan281 copysign  #77fcff3fdff3fcff  1 -> #77fcff3fdff3fcff
+-- NaNs
+ddcan282 copysign  #7c03ff3fcff3fcff -1 -> #fc03ff3fcff3fcff
+ddcan283 copysign  #7c00ff3fcff3ffff  1 -> #7c00ff3fcff3ffff
+ddcan284 copysign  #7d00ff3fcff3fcff -1 -> #fd00ff3fcff3fcff
+ddcan285 copysign  #7c04ff3fcff3fcff  1 -> #7c04ff3fcff3fcff
+-- sNaN
+ddcan286 copysign  #7e00ff3fcffffcff -1 -> #fe00ff3fcffffcff
+ddcan287 copysign  #7e40ff3fcff3fcff  1 -> #7e40ff3fcff3fcff
+-- Inf
+ddcan288 copysign  #7a00000000000000 -1 -> #fa00000000000000
+ddcan289 copysign  #7800200000000000  1 -> #7800200000000000
+
+----- Multiply:
+-- Finites: neutral 0
+ddcan302 multiply  1      #77ffff3fcff3fcff        -> #77fcff3fcff3fcff
+ddcan303 multiply         #77fcffffcff3fcff  1     -> #77fcff3fcff3fcff
+-- negative
+ddcan306 multiply -1      #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff
+ddcan307 multiply         #77fcffffcff3fcff -1     -> #f7fcff3fcff3fcff
+-- NaN: declets in payload
+ddcan311 multiply  1  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff
+ddcan312 multiply     #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
+-- NaN: exponent continuation bits [excluding sNaN selector]
+ddcan313 multiply  1  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff
+ddcan314 multiply     #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
+-- sNaN: declets in payload
+ddcan315 multiply  1  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
+ddcan316 multiply     #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
+-- sNaN: exponent continuation bits [excluding sNaN selector]
+ddcan317 multiply  1  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
+ddcan318 multiply     #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
+-- Inf: exponent continuation bits
+ddcan320 multiply  1  #7880000000000000      -> #7800000000000000
+ddcan321 multiply     #7880000000000000  1   -> #7800000000000000
+-- Inf: coefficient continuation bits
+ddcan322 multiply  1  #7802000000000000     -> #7800000000000000
+ddcan323 multiply     #7802000000000000  1  -> #7800000000000000
+ddcan324 multiply  1  #7800000000000001     -> #7800000000000000
+ddcan325 multiply     #7800000000000001  1  -> #7800000000000000
+ddcan326 multiply  1  #7800002000000000     -> #7800000000000000
+ddcan327 multiply     #7800002000000000  1  -> #7800000000000000
+
+----- Quantize:
+ddcan401 quantize  #6e38ff3ffff3fcff 1    -> #6e38ff3fcff3fcff
+ddcan402 quantize  #6e38ff3fcff3fdff 0    -> #6e38ff3fcff3fcff
+ddcan403 quantize  #7880000000000000 Inf  -> #7800000000000000
+ddcan404 quantize  #7802000000000000 -Inf -> #7800000000000000
+ddcan410 quantize  #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
+ddcan411 quantize  #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
+ddcan412 quantize  #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
+ddcan413 quantize  #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
+ddcan414 quantize  #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
+ddcan415 quantize  #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
+ddcan416 quantize  #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
+ddcan417 quantize  #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
+
+----- Subtract:
+-- Finites: neutral 0
+ddcan502 subtract  0E+384 #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff
+ddcan503 subtract         #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff
+-- tiny zero
+ddcan504 subtract  0E-398 #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff Rounded
+ddcan505 subtract         #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded
+-- tiny non zero
+ddcan506 subtract -1E-398 #77ffff3fcff3fcff         -> #f7fcff3fcff3fcff Inexact Rounded
+ddcan507 subtract         #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded
+-- NaN: declets in payload
+ddcan511 subtract  0  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff
+ddcan512 subtract     #7c03ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
+-- NaN: exponent continuation bits [excluding sNaN selector]
+ddcan513 subtract  0  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff
+ddcan514 subtract     #7c40ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
+-- sNaN: declets in payload
+ddcan515 subtract  0  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
+ddcan516 subtract     #7e00ffffcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
+-- sNaN: exponent continuation bits [excluding sNaN selector]
+ddcan517 subtract  0  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
+ddcan518 subtract     #7e80ff3fcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
+-- Inf: exponent continuation bits
+ddcan520 subtract  0  #7880000000000000      -> #f800000000000000
+ddcan521 subtract     #7880000000000000  0   -> #7800000000000000
+-- Inf: coefficient continuation bits
+ddcan522 subtract  0  #7802000000000000     -> #f800000000000000
+ddcan523 subtract     #7802000000000000  0  -> #7800000000000000
+ddcan524 subtract  0  #7800000000000001     -> #f800000000000000
+ddcan525 subtract     #7800000000000001  0  -> #7800000000000000
+ddcan526 subtract  0  #7800002000000000     -> #f800000000000000
+ddcan527 subtract     #7800002000000000  0  -> #7800000000000000
+
+----- ToIntegral:
+ddcan601 tointegralx  #6e38ff3ffff3fcff -> #6e38ff3fcff3fcff
+ddcan602 tointegralx  #6e38ff3fcff3fdff -> #6e38ff3fcff3fcff
+ddcan603 tointegralx  #7880000000000000 -> #7800000000000000
+ddcan604 tointegralx  #7802000000000000 -> #7800000000000000
+ddcan610 tointegralx  #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
+ddcan611 tointegralx  #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
+ddcan612 tointegralx  #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
+ddcan613 tointegralx  #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
+ddcan614 tointegralx  #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
+ddcan615 tointegralx  #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
+ddcan616 tointegralx  #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
+ddcan617 tointegralx  #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
+-- uncanonical 3999, 39.99, 3.99, 0.399, and negatives
+ddcan618 tointegralx  #2238000000000fff -> #2238000000000cff
+ddcan619 tointegralx  #2230000000000fff -> #2238000000000040 Inexact Rounded
+ddcan620 tointegralx  #222c000000000fff -> #2238000000000004 Inexact Rounded
+ddcan621 tointegralx  #2228000000000fff -> #2238000000000000 Inexact Rounded
+ddcan622 tointegralx  #a238000000000fff -> #a238000000000cff
+ddcan623 tointegralx  #a230000000000fff -> #a238000000000040 Inexact Rounded
+ddcan624 tointegralx  #a22c000000000fff -> #a238000000000004 Inexact Rounded
+ddcan625 tointegralx  #a228000000000fff -> #a238000000000000 Inexact Rounded
+
+
+