1 ------------------------------------------------------------------------ 2 -- ddCompareTotalMag.decTest -- decDouble comparison; abs. total order-- 3 -- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. -- 4 ------------------------------------------------------------------------ 5 -- Please see the document "General Decimal Arithmetic Testcases" -- 6 -- at http://www2.hursley.ibm.com/decimal for the description of -- 7 -- these testcases. -- 8 -- -- 9 -- These testcases are experimental ('beta' versions), and they -- 10 -- may contain errors. They are offered on an as-is basis. In -- 11 -- particular, achieving the same results as the tests here is not -- 12 -- a guarantee that an implementation complies with any Standard -- 13 -- or specification. The tests are not exhaustive. -- 14 -- -- 15 -- Please send comments, suggestions, and corrections to the author: -- 16 -- Mike Cowlishaw, IBM Fellow -- 17 -- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK -- 18 -- mfc (a] uk.ibm.com -- 19 ------------------------------------------------------------------------ 20 version: 2.59 21 22 -- Note that we cannot assume add/subtract tests cover paths adequately, 23 -- here, because the code might be quite different (comparison cannot 24 -- overflow or underflow, so actual subtractions are not necessary). 25 -- Similarly, comparetotal will have some radically different paths 26 -- than compare. 27 28 -- All operands and results are decDoubles. 29 precision: 16 30 maxExponent: 384 31 minExponent: -383 32 extended: 1 33 clamp: 1 34 rounding: half_even 35 36 -- sanity checks 37 ddctm001 comparetotmag -2 -2 -> 0 38 ddctm002 comparetotmag -2 -1 -> 1 39 ddctm003 comparetotmag -2 0 -> 1 40 ddctm004 comparetotmag -2 1 -> 1 41 ddctm005 comparetotmag -2 2 -> 0 42 ddctm006 comparetotmag -1 -2 -> -1 43 ddctm007 comparetotmag -1 -1 -> 0 44 ddctm008 comparetotmag -1 0 -> 1 45 ddctm009 comparetotmag -1 1 -> 0 46 ddctm010 comparetotmag -1 2 -> -1 47 ddctm011 comparetotmag 0 -2 -> -1 48 ddctm012 comparetotmag 0 -1 -> -1 49 ddctm013 comparetotmag 0 0 -> 0 50 ddctm014 comparetotmag 0 1 -> -1 51 ddctm015 comparetotmag 0 2 -> -1 52 ddctm016 comparetotmag 1 -2 -> -1 53 ddctm017 comparetotmag 1 -1 -> 0 54 ddctm018 comparetotmag 1 0 -> 1 55 ddctm019 comparetotmag 1 1 -> 0 56 ddctm020 comparetotmag 1 2 -> -1 57 ddctm021 comparetotmag 2 -2 -> 0 58 ddctm022 comparetotmag 2 -1 -> 1 59 ddctm023 comparetotmag 2 0 -> 1 60 ddctm025 comparetotmag 2 1 -> 1 61 ddctm026 comparetotmag 2 2 -> 0 62 63 ddctm031 comparetotmag -20 -20 -> 0 64 ddctm032 comparetotmag -20 -10 -> 1 65 ddctm033 comparetotmag -20 00 -> 1 66 ddctm034 comparetotmag -20 10 -> 1 67 ddctm035 comparetotmag -20 20 -> 0 68 ddctm036 comparetotmag -10 -20 -> -1 69 ddctm037 comparetotmag -10 -10 -> 0 70 ddctm038 comparetotmag -10 00 -> 1 71 ddctm039 comparetotmag -10 10 -> 0 72 ddctm040 comparetotmag -10 20 -> -1 73 ddctm041 comparetotmag 00 -20 -> -1 74 ddctm042 comparetotmag 00 -10 -> -1 75 ddctm043 comparetotmag 00 00 -> 0 76 ddctm044 comparetotmag 00 10 -> -1 77 ddctm045 comparetotmag 00 20 -> -1 78 ddctm046 comparetotmag 10 -20 -> -1 79 ddctm047 comparetotmag 10 -10 -> 0 80 ddctm048 comparetotmag 10 00 -> 1 81 ddctm049 comparetotmag 10 10 -> 0 82 ddctm050 comparetotmag 10 20 -> -1 83 ddctm051 comparetotmag 20 -20 -> 0 84 ddctm052 comparetotmag 20 -10 -> 1 85 ddctm053 comparetotmag 20 00 -> 1 86 ddctm055 comparetotmag 20 10 -> 1 87 ddctm056 comparetotmag 20 20 -> 0 88 89 ddctm061 comparetotmag -2.0 -2.0 -> 0 90 ddctm062 comparetotmag -2.0 -1.0 -> 1 91 ddctm063 comparetotmag -2.0 0.0 -> 1 92 ddctm064 comparetotmag -2.0 1.0 -> 1 93 ddctm065 comparetotmag -2.0 2.0 -> 0 94 ddctm066 comparetotmag -1.0 -2.0 -> -1 95 ddctm067 comparetotmag -1.0 -1.0 -> 0 96 ddctm068 comparetotmag -1.0 0.0 -> 1 97 ddctm069 comparetotmag -1.0 1.0 -> 0 98 ddctm070 comparetotmag -1.0 2.0 -> -1 99 ddctm071 comparetotmag 0.0 -2.0 -> -1 100 ddctm072 comparetotmag 0.0 -1.0 -> -1 101 ddctm073 comparetotmag 0.0 0.0 -> 0 102 ddctm074 comparetotmag 0.0 1.0 -> -1 103 ddctm075 comparetotmag 0.0 2.0 -> -1 104 ddctm076 comparetotmag 1.0 -2.0 -> -1 105 ddctm077 comparetotmag 1.0 -1.0 -> 0 106 ddctm078 comparetotmag 1.0 0.0 -> 1 107 ddctm079 comparetotmag 1.0 1.0 -> 0 108 ddctm080 comparetotmag 1.0 2.0 -> -1 109 ddctm081 comparetotmag 2.0 -2.0 -> 0 110 ddctm082 comparetotmag 2.0 -1.0 -> 1 111 ddctm083 comparetotmag 2.0 0.0 -> 1 112 ddctm085 comparetotmag 2.0 1.0 -> 1 113 ddctm086 comparetotmag 2.0 2.0 -> 0 114 115 -- now some cases which might overflow if subtract were used 116 ddctm090 comparetotmag 9.99999999E+384 9.99999999E+384 -> 0 117 ddctm091 comparetotmag -9.99999999E+384 9.99999999E+384 -> 0 118 ddctm092 comparetotmag 9.99999999E+384 -9.99999999E+384 -> 0 119 ddctm093 comparetotmag -9.99999999E+384 -9.99999999E+384 -> 0 120 121 -- some differing length/exponent cases 122 -- in this first group, compare would compare all equal 123 ddctm100 comparetotmag 7.0 7.0 -> 0 124 ddctm101 comparetotmag 7.0 7 -> -1 125 ddctm102 comparetotmag 7 7.0 -> 1 126 ddctm103 comparetotmag 7E+0 7.0 -> 1 127 ddctm104 comparetotmag 70E-1 7.0 -> 0 128 ddctm105 comparetotmag 0.7E+1 7 -> 0 129 ddctm106 comparetotmag 70E-1 7 -> -1 130 ddctm107 comparetotmag 7.0 7E+0 -> -1 131 ddctm108 comparetotmag 7.0 70E-1 -> 0 132 ddctm109 comparetotmag 7 0.7E+1 -> 0 133 ddctm110 comparetotmag 7 70E-1 -> 1 134 135 ddctm120 comparetotmag 8.0 7.0 -> 1 136 ddctm121 comparetotmag 8.0 7 -> 1 137 ddctm122 comparetotmag 8 7.0 -> 1 138 ddctm123 comparetotmag 8E+0 7.0 -> 1 139 ddctm124 comparetotmag 80E-1 7.0 -> 1 140 ddctm125 comparetotmag 0.8E+1 7 -> 1 141 ddctm126 comparetotmag 80E-1 7 -> 1 142 ddctm127 comparetotmag 8.0 7E+0 -> 1 143 ddctm128 comparetotmag 8.0 70E-1 -> 1 144 ddctm129 comparetotmag 8 0.7E+1 -> 1 145 ddctm130 comparetotmag 8 70E-1 -> 1 146 147 ddctm140 comparetotmag 8.0 9.0 -> -1 148 ddctm141 comparetotmag 8.0 9 -> -1 149 ddctm142 comparetotmag 8 9.0 -> -1 150 ddctm143 comparetotmag 8E+0 9.0 -> -1 151 ddctm144 comparetotmag 80E-1 9.0 -> -1 152 ddctm145 comparetotmag 0.8E+1 9 -> -1 153 ddctm146 comparetotmag 80E-1 9 -> -1 154 ddctm147 comparetotmag 8.0 9E+0 -> -1 155 ddctm148 comparetotmag 8.0 90E-1 -> -1 156 ddctm149 comparetotmag 8 0.9E+1 -> -1 157 ddctm150 comparetotmag 8 90E-1 -> -1 158 159 -- and again, with sign changes -+ .. 160 ddctm200 comparetotmag -7.0 7.0 -> 0 161 ddctm201 comparetotmag -7.0 7 -> -1 162 ddctm202 comparetotmag -7 7.0 -> 1 163 ddctm203 comparetotmag -7E+0 7.0 -> 1 164 ddctm204 comparetotmag -70E-1 7.0 -> 0 165 ddctm205 comparetotmag -0.7E+1 7 -> 0 166 ddctm206 comparetotmag -70E-1 7 -> -1 167 ddctm207 comparetotmag -7.0 7E+0 -> -1 168 ddctm208 comparetotmag -7.0 70E-1 -> 0 169 ddctm209 comparetotmag -7 0.7E+1 -> 0 170 ddctm210 comparetotmag -7 70E-1 -> 1 171 172 ddctm220 comparetotmag -8.0 7.0 -> 1 173 ddctm221 comparetotmag -8.0 7 -> 1 174 ddctm222 comparetotmag -8 7.0 -> 1 175 ddctm223 comparetotmag -8E+0 7.0 -> 1 176 ddctm224 comparetotmag -80E-1 7.0 -> 1 177 ddctm225 comparetotmag -0.8E+1 7 -> 1 178 ddctm226 comparetotmag -80E-1 7 -> 1 179 ddctm227 comparetotmag -8.0 7E+0 -> 1 180 ddctm228 comparetotmag -8.0 70E-1 -> 1 181 ddctm229 comparetotmag -8 0.7E+1 -> 1 182 ddctm230 comparetotmag -8 70E-1 -> 1 183 184 ddctm240 comparetotmag -8.0 9.0 -> -1 185 ddctm241 comparetotmag -8.0 9 -> -1 186 ddctm242 comparetotmag -8 9.0 -> -1 187 ddctm243 comparetotmag -8E+0 9.0 -> -1 188 ddctm244 comparetotmag -80E-1 9.0 -> -1 189 ddctm245 comparetotmag -0.8E+1 9 -> -1 190 ddctm246 comparetotmag -80E-1 9 -> -1 191 ddctm247 comparetotmag -8.0 9E+0 -> -1 192 ddctm248 comparetotmag -8.0 90E-1 -> -1 193 ddctm249 comparetotmag -8 0.9E+1 -> -1 194 ddctm250 comparetotmag -8 90E-1 -> -1 195 196 -- and again, with sign changes +- .. 197 ddctm300 comparetotmag 7.0 -7.0 -> 0 198 ddctm301 comparetotmag 7.0 -7 -> -1 199 ddctm302 comparetotmag 7 -7.0 -> 1 200 ddctm303 comparetotmag 7E+0 -7.0 -> 1 201 ddctm304 comparetotmag 70E-1 -7.0 -> 0 202 ddctm305 comparetotmag .7E+1 -7 -> 0 203 ddctm306 comparetotmag 70E-1 -7 -> -1 204 ddctm307 comparetotmag 7.0 -7E+0 -> -1 205 ddctm308 comparetotmag 7.0 -70E-1 -> 0 206 ddctm309 comparetotmag 7 -.7E+1 -> 0 207 ddctm310 comparetotmag 7 -70E-1 -> 1 208 209 ddctm320 comparetotmag 8.0 -7.0 -> 1 210 ddctm321 comparetotmag 8.0 -7 -> 1 211 ddctm322 comparetotmag 8 -7.0 -> 1 212 ddctm323 comparetotmag 8E+0 -7.0 -> 1 213 ddctm324 comparetotmag 80E-1 -7.0 -> 1 214 ddctm325 comparetotmag .8E+1 -7 -> 1 215 ddctm326 comparetotmag 80E-1 -7 -> 1 216 ddctm327 comparetotmag 8.0 -7E+0 -> 1 217 ddctm328 comparetotmag 8.0 -70E-1 -> 1 218 ddctm329 comparetotmag 8 -.7E+1 -> 1 219 ddctm330 comparetotmag 8 -70E-1 -> 1 220 221 ddctm340 comparetotmag 8.0 -9.0 -> -1 222 ddctm341 comparetotmag 8.0 -9 -> -1 223 ddctm342 comparetotmag 8 -9.0 -> -1 224 ddctm343 comparetotmag 8E+0 -9.0 -> -1 225 ddctm344 comparetotmag 80E-1 -9.0 -> -1 226 ddctm345 comparetotmag .8E+1 -9 -> -1 227 ddctm346 comparetotmag 80E-1 -9 -> -1 228 ddctm347 comparetotmag 8.0 -9E+0 -> -1 229 ddctm348 comparetotmag 8.0 -90E-1 -> -1 230 ddctm349 comparetotmag 8 -.9E+1 -> -1 231 ddctm350 comparetotmag 8 -90E-1 -> -1 232 233 -- and again, with sign changes -- .. 234 ddctm400 comparetotmag -7.0 -7.0 -> 0 235 ddctm401 comparetotmag -7.0 -7 -> -1 236 ddctm402 comparetotmag -7 -7.0 -> 1 237 ddctm403 comparetotmag -7E+0 -7.0 -> 1 238 ddctm404 comparetotmag -70E-1 -7.0 -> 0 239 ddctm405 comparetotmag -.7E+1 -7 -> 0 240 ddctm406 comparetotmag -70E-1 -7 -> -1 241 ddctm407 comparetotmag -7.0 -7E+0 -> -1 242 ddctm408 comparetotmag -7.0 -70E-1 -> 0 243 ddctm409 comparetotmag -7 -.7E+1 -> 0 244 ddctm410 comparetotmag -7 -70E-1 -> 1 245 246 ddctm420 comparetotmag -8.0 -7.0 -> 1 247 ddctm421 comparetotmag -8.0 -7 -> 1 248 ddctm422 comparetotmag -8 -7.0 -> 1 249 ddctm423 comparetotmag -8E+0 -7.0 -> 1 250 ddctm424 comparetotmag -80E-1 -7.0 -> 1 251 ddctm425 comparetotmag -.8E+1 -7 -> 1 252 ddctm426 comparetotmag -80E-1 -7 -> 1 253 ddctm427 comparetotmag -8.0 -7E+0 -> 1 254 ddctm428 comparetotmag -8.0 -70E-1 -> 1 255 ddctm429 comparetotmag -8 -.7E+1 -> 1 256 ddctm430 comparetotmag -8 -70E-1 -> 1 257 258 ddctm440 comparetotmag -8.0 -9.0 -> -1 259 ddctm441 comparetotmag -8.0 -9 -> -1 260 ddctm442 comparetotmag -8 -9.0 -> -1 261 ddctm443 comparetotmag -8E+0 -9.0 -> -1 262 ddctm444 comparetotmag -80E-1 -9.0 -> -1 263 ddctm445 comparetotmag -.8E+1 -9 -> -1 264 ddctm446 comparetotmag -80E-1 -9 -> -1 265 ddctm447 comparetotmag -8.0 -9E+0 -> -1 266 ddctm448 comparetotmag -8.0 -90E-1 -> -1 267 ddctm449 comparetotmag -8 -.9E+1 -> -1 268 ddctm450 comparetotmag -8 -90E-1 -> -1 269 270 271 -- testcases that subtract to lots of zeros at boundaries [pgr] 272 ddctm473 comparetotmag 123.4560000000000E-89 123.456E-89 -> -1 273 ddctm474 comparetotmag 123.456000000000E+89 123.456E+89 -> -1 274 ddctm475 comparetotmag 123.45600000000E-89 123.456E-89 -> -1 275 ddctm476 comparetotmag 123.4560000000E+89 123.456E+89 -> -1 276 ddctm477 comparetotmag 123.456000000E-89 123.456E-89 -> -1 277 ddctm478 comparetotmag 123.45600000E+89 123.456E+89 -> -1 278 ddctm479 comparetotmag 123.4560000E-89 123.456E-89 -> -1 279 ddctm480 comparetotmag 123.456000E+89 123.456E+89 -> -1 280 ddctm481 comparetotmag 123.45600E-89 123.456E-89 -> -1 281 ddctm482 comparetotmag 123.4560E+89 123.456E+89 -> -1 282 ddctm483 comparetotmag 123.456E-89 123.456E-89 -> 0 283 ddctm487 comparetotmag 123.456E+89 123.4560000000000E+89 -> 1 284 ddctm488 comparetotmag 123.456E-89 123.456000000000E-89 -> 1 285 ddctm489 comparetotmag 123.456E+89 123.45600000000E+89 -> 1 286 ddctm490 comparetotmag 123.456E-89 123.4560000000E-89 -> 1 287 ddctm491 comparetotmag 123.456E+89 123.456000000E+89 -> 1 288 ddctm492 comparetotmag 123.456E-89 123.45600000E-89 -> 1 289 ddctm493 comparetotmag 123.456E+89 123.4560000E+89 -> 1 290 ddctm494 comparetotmag 123.456E-89 123.456000E-89 -> 1 291 ddctm495 comparetotmag 123.456E+89 123.45600E+89 -> 1 292 ddctm496 comparetotmag 123.456E-89 123.4560E-89 -> 1 293 ddctm497 comparetotmag 123.456E+89 123.456E+89 -> 0 294 295 -- wide-ranging, around precision; signs equal 296 ddctm498 comparetotmag 1 1E-17 -> 1 297 ddctm499 comparetotmag 1 1E-16 -> 1 298 ddctm500 comparetotmag 1 1E-15 -> 1 299 ddctm501 comparetotmag 1 1E-14 -> 1 300 ddctm502 comparetotmag 1 1E-13 -> 1 301 ddctm503 comparetotmag 1 1E-12 -> 1 302 ddctm504 comparetotmag 1 1E-11 -> 1 303 ddctm505 comparetotmag 1 1E-10 -> 1 304 ddctm506 comparetotmag 1 1E-9 -> 1 305 ddctm507 comparetotmag 1 1E-8 -> 1 306 ddctm508 comparetotmag 1 1E-7 -> 1 307 ddctm509 comparetotmag 1 1E-6 -> 1 308 ddctm510 comparetotmag 1 1E-5 -> 1 309 ddctm511 comparetotmag 1 1E-4 -> 1 310 ddctm512 comparetotmag 1 1E-3 -> 1 311 ddctm513 comparetotmag 1 1E-2 -> 1 312 ddctm514 comparetotmag 1 1E-1 -> 1 313 ddctm515 comparetotmag 1 1E-0 -> 0 314 ddctm516 comparetotmag 1 1E+1 -> -1 315 ddctm517 comparetotmag 1 1E+2 -> -1 316 ddctm518 comparetotmag 1 1E+3 -> -1 317 ddctm519 comparetotmag 1 1E+4 -> -1 318 ddctm521 comparetotmag 1 1E+5 -> -1 319 ddctm522 comparetotmag 1 1E+6 -> -1 320 ddctm523 comparetotmag 1 1E+7 -> -1 321 ddctm524 comparetotmag 1 1E+8 -> -1 322 ddctm525 comparetotmag 1 1E+9 -> -1 323 ddctm526 comparetotmag 1 1E+10 -> -1 324 ddctm527 comparetotmag 1 1E+11 -> -1 325 ddctm528 comparetotmag 1 1E+12 -> -1 326 ddctm529 comparetotmag 1 1E+13 -> -1 327 ddctm530 comparetotmag 1 1E+14 -> -1 328 ddctm531 comparetotmag 1 1E+15 -> -1 329 ddctm532 comparetotmag 1 1E+16 -> -1 330 ddctm533 comparetotmag 1 1E+17 -> -1 331 -- LR swap 332 ddctm538 comparetotmag 1E-17 1 -> -1 333 ddctm539 comparetotmag 1E-16 1 -> -1 334 ddctm540 comparetotmag 1E-15 1 -> -1 335 ddctm541 comparetotmag 1E-14 1 -> -1 336 ddctm542 comparetotmag 1E-13 1 -> -1 337 ddctm543 comparetotmag 1E-12 1 -> -1 338 ddctm544 comparetotmag 1E-11 1 -> -1 339 ddctm545 comparetotmag 1E-10 1 -> -1 340 ddctm546 comparetotmag 1E-9 1 -> -1 341 ddctm547 comparetotmag 1E-8 1 -> -1 342 ddctm548 comparetotmag 1E-7 1 -> -1 343 ddctm549 comparetotmag 1E-6 1 -> -1 344 ddctm550 comparetotmag 1E-5 1 -> -1 345 ddctm551 comparetotmag 1E-4 1 -> -1 346 ddctm552 comparetotmag 1E-3 1 -> -1 347 ddctm553 comparetotmag 1E-2 1 -> -1 348 ddctm554 comparetotmag 1E-1 1 -> -1 349 ddctm555 comparetotmag 1E-0 1 -> 0 350 ddctm556 comparetotmag 1E+1 1 -> 1 351 ddctm557 comparetotmag 1E+2 1 -> 1 352 ddctm558 comparetotmag 1E+3 1 -> 1 353 ddctm559 comparetotmag 1E+4 1 -> 1 354 ddctm561 comparetotmag 1E+5 1 -> 1 355 ddctm562 comparetotmag 1E+6 1 -> 1 356 ddctm563 comparetotmag 1E+7 1 -> 1 357 ddctm564 comparetotmag 1E+8 1 -> 1 358 ddctm565 comparetotmag 1E+9 1 -> 1 359 ddctm566 comparetotmag 1E+10 1 -> 1 360 ddctm567 comparetotmag 1E+11 1 -> 1 361 ddctm568 comparetotmag 1E+12 1 -> 1 362 ddctm569 comparetotmag 1E+13 1 -> 1 363 ddctm570 comparetotmag 1E+14 1 -> 1 364 ddctm571 comparetotmag 1E+15 1 -> 1 365 ddctm572 comparetotmag 1E+16 1 -> 1 366 ddctm573 comparetotmag 1E+17 1 -> 1 367 -- similar with a useful coefficient, one side only 368 ddctm578 comparetotmag 0.000000987654321 1E-17 -> 1 369 ddctm579 comparetotmag 0.000000987654321 1E-16 -> 1 370 ddctm580 comparetotmag 0.000000987654321 1E-15 -> 1 371 ddctm581 comparetotmag 0.000000987654321 1E-14 -> 1 372 ddctm582 comparetotmag 0.000000987654321 1E-13 -> 1 373 ddctm583 comparetotmag 0.000000987654321 1E-12 -> 1 374 ddctm584 comparetotmag 0.000000987654321 1E-11 -> 1 375 ddctm585 comparetotmag 0.000000987654321 1E-10 -> 1 376 ddctm586 comparetotmag 0.000000987654321 1E-9 -> 1 377 ddctm587 comparetotmag 0.000000987654321 1E-8 -> 1 378 ddctm588 comparetotmag 0.000000987654321 1E-7 -> 1 379 ddctm589 comparetotmag 0.000000987654321 1E-6 -> -1 380 ddctm590 comparetotmag 0.000000987654321 1E-5 -> -1 381 ddctm591 comparetotmag 0.000000987654321 1E-4 -> -1 382 ddctm592 comparetotmag 0.000000987654321 1E-3 -> -1 383 ddctm593 comparetotmag 0.000000987654321 1E-2 -> -1 384 ddctm594 comparetotmag 0.000000987654321 1E-1 -> -1 385 ddctm595 comparetotmag 0.000000987654321 1E-0 -> -1 386 ddctm596 comparetotmag 0.000000987654321 1E+1 -> -1 387 ddctm597 comparetotmag 0.000000987654321 1E+2 -> -1 388 ddctm598 comparetotmag 0.000000987654321 1E+3 -> -1 389 ddctm599 comparetotmag 0.000000987654321 1E+4 -> -1 390 391 -- check some unit-y traps 392 ddctm600 comparetotmag 12 12.2345 -> -1 393 ddctm601 comparetotmag 12.0 12.2345 -> -1 394 ddctm602 comparetotmag 12.00 12.2345 -> -1 395 ddctm603 comparetotmag 12.000 12.2345 -> -1 396 ddctm604 comparetotmag 12.0000 12.2345 -> -1 397 ddctm605 comparetotmag 12.00000 12.2345 -> -1 398 ddctm606 comparetotmag 12.000000 12.2345 -> -1 399 ddctm607 comparetotmag 12.0000000 12.2345 -> -1 400 ddctm608 comparetotmag 12.00000000 12.2345 -> -1 401 ddctm609 comparetotmag 12.000000000 12.2345 -> -1 402 ddctm610 comparetotmag 12.1234 12 -> 1 403 ddctm611 comparetotmag 12.1234 12.0 -> 1 404 ddctm612 comparetotmag 12.1234 12.00 -> 1 405 ddctm613 comparetotmag 12.1234 12.000 -> 1 406 ddctm614 comparetotmag 12.1234 12.0000 -> 1 407 ddctm615 comparetotmag 12.1234 12.00000 -> 1 408 ddctm616 comparetotmag 12.1234 12.000000 -> 1 409 ddctm617 comparetotmag 12.1234 12.0000000 -> 1 410 ddctm618 comparetotmag 12.1234 12.00000000 -> 1 411 ddctm619 comparetotmag 12.1234 12.000000000 -> 1 412 ddctm620 comparetotmag -12 -12.2345 -> -1 413 ddctm621 comparetotmag -12.0 -12.2345 -> -1 414 ddctm622 comparetotmag -12.00 -12.2345 -> -1 415 ddctm623 comparetotmag -12.000 -12.2345 -> -1 416 ddctm624 comparetotmag -12.0000 -12.2345 -> -1 417 ddctm625 comparetotmag -12.00000 -12.2345 -> -1 418 ddctm626 comparetotmag -12.000000 -12.2345 -> -1 419 ddctm627 comparetotmag -12.0000000 -12.2345 -> -1 420 ddctm628 comparetotmag -12.00000000 -12.2345 -> -1 421 ddctm629 comparetotmag -12.000000000 -12.2345 -> -1 422 ddctm630 comparetotmag -12.1234 -12 -> 1 423 ddctm631 comparetotmag -12.1234 -12.0 -> 1 424 ddctm632 comparetotmag -12.1234 -12.00 -> 1 425 ddctm633 comparetotmag -12.1234 -12.000 -> 1 426 ddctm634 comparetotmag -12.1234 -12.0000 -> 1 427 ddctm635 comparetotmag -12.1234 -12.00000 -> 1 428 ddctm636 comparetotmag -12.1234 -12.000000 -> 1 429 ddctm637 comparetotmag -12.1234 -12.0000000 -> 1 430 ddctm638 comparetotmag -12.1234 -12.00000000 -> 1 431 ddctm639 comparetotmag -12.1234 -12.000000000 -> 1 432 433 -- extended zeros 434 ddctm640 comparetotmag 0 0 -> 0 435 ddctm641 comparetotmag 0 -0 -> 0 436 ddctm642 comparetotmag 0 -0.0 -> 1 437 ddctm643 comparetotmag 0 0.0 -> 1 438 ddctm644 comparetotmag -0 0 -> 0 439 ddctm645 comparetotmag -0 -0 -> 0 440 ddctm646 comparetotmag -0 -0.0 -> 1 441 ddctm647 comparetotmag -0 0.0 -> 1 442 ddctm648 comparetotmag 0.0 0 -> -1 443 ddctm649 comparetotmag 0.0 -0 -> -1 444 ddctm650 comparetotmag 0.0 -0.0 -> 0 445 ddctm651 comparetotmag 0.0 0.0 -> 0 446 ddctm652 comparetotmag -0.0 0 -> -1 447 ddctm653 comparetotmag -0.0 -0 -> -1 448 ddctm654 comparetotmag -0.0 -0.0 -> 0 449 ddctm655 comparetotmag -0.0 0.0 -> 0 450 451 ddctm656 comparetotmag -0E1 0.0 -> 1 452 ddctm657 comparetotmag -0E2 0.0 -> 1 453 ddctm658 comparetotmag 0E1 0.0 -> 1 454 ddctm659 comparetotmag 0E2 0.0 -> 1 455 ddctm660 comparetotmag -0E1 0 -> 1 456 ddctm661 comparetotmag -0E2 0 -> 1 457 ddctm662 comparetotmag 0E1 0 -> 1 458 ddctm663 comparetotmag 0E2 0 -> 1 459 ddctm664 comparetotmag -0E1 -0E1 -> 0 460 ddctm665 comparetotmag -0E2 -0E1 -> 1 461 ddctm666 comparetotmag 0E1 -0E1 -> 0 462 ddctm667 comparetotmag 0E2 -0E1 -> 1 463 ddctm668 comparetotmag -0E1 -0E2 -> -1 464 ddctm669 comparetotmag -0E2 -0E2 -> 0 465 ddctm670 comparetotmag 0E1 -0E2 -> -1 466 ddctm671 comparetotmag 0E2 -0E2 -> 0 467 ddctm672 comparetotmag -0E1 0E1 -> 0 468 ddctm673 comparetotmag -0E2 0E1 -> 1 469 ddctm674 comparetotmag 0E1 0E1 -> 0 470 ddctm675 comparetotmag 0E2 0E1 -> 1 471 ddctm676 comparetotmag -0E1 0E2 -> -1 472 ddctm677 comparetotmag -0E2 0E2 -> 0 473 ddctm678 comparetotmag 0E1 0E2 -> -1 474 ddctm679 comparetotmag 0E2 0E2 -> 0 475 476 -- trailing zeros; unit-y 477 ddctm680 comparetotmag 12 12 -> 0 478 ddctm681 comparetotmag 12 12.0 -> 1 479 ddctm682 comparetotmag 12 12.00 -> 1 480 ddctm683 comparetotmag 12 12.000 -> 1 481 ddctm684 comparetotmag 12 12.0000 -> 1 482 ddctm685 comparetotmag 12 12.00000 -> 1 483 ddctm686 comparetotmag 12 12.000000 -> 1 484 ddctm687 comparetotmag 12 12.0000000 -> 1 485 ddctm688 comparetotmag 12 12.00000000 -> 1 486 ddctm689 comparetotmag 12 12.000000000 -> 1 487 ddctm690 comparetotmag 12 12 -> 0 488 ddctm691 comparetotmag 12.0 12 -> -1 489 ddctm692 comparetotmag 12.00 12 -> -1 490 ddctm693 comparetotmag 12.000 12 -> -1 491 ddctm694 comparetotmag 12.0000 12 -> -1 492 ddctm695 comparetotmag 12.00000 12 -> -1 493 ddctm696 comparetotmag 12.000000 12 -> -1 494 ddctm697 comparetotmag 12.0000000 12 -> -1 495 ddctm698 comparetotmag 12.00000000 12 -> -1 496 ddctm699 comparetotmag 12.000000000 12 -> -1 497 498 -- old long operand checks 499 ddctm701 comparetotmag 12345678000 1 -> 1 500 ddctm702 comparetotmag 1 12345678000 -> -1 501 ddctm703 comparetotmag 1234567800 1 -> 1 502 ddctm704 comparetotmag 1 1234567800 -> -1 503 ddctm705 comparetotmag 1234567890 1 -> 1 504 ddctm706 comparetotmag 1 1234567890 -> -1 505 ddctm707 comparetotmag 1234567891 1 -> 1 506 ddctm708 comparetotmag 1 1234567891 -> -1 507 ddctm709 comparetotmag 12345678901 1 -> 1 508 ddctm710 comparetotmag 1 12345678901 -> -1 509 ddctm711 comparetotmag 1234567896 1 -> 1 510 ddctm712 comparetotmag 1 1234567896 -> -1 511 ddctm713 comparetotmag -1234567891 1 -> 1 512 ddctm714 comparetotmag 1 -1234567891 -> -1 513 ddctm715 comparetotmag -12345678901 1 -> 1 514 ddctm716 comparetotmag 1 -12345678901 -> -1 515 ddctm717 comparetotmag -1234567896 1 -> 1 516 ddctm718 comparetotmag 1 -1234567896 -> -1 517 518 -- old residue cases 519 ddctm740 comparetotmag 1 0.9999999 -> 1 520 ddctm741 comparetotmag 1 0.999999 -> 1 521 ddctm742 comparetotmag 1 0.99999 -> 1 522 ddctm743 comparetotmag 1 1.0000 -> 1 523 ddctm744 comparetotmag 1 1.00001 -> -1 524 ddctm745 comparetotmag 1 1.000001 -> -1 525 ddctm746 comparetotmag 1 1.0000001 -> -1 526 ddctm750 comparetotmag 0.9999999 1 -> -1 527 ddctm751 comparetotmag 0.999999 1 -> -1 528 ddctm752 comparetotmag 0.99999 1 -> -1 529 ddctm753 comparetotmag 1.0000 1 -> -1 530 ddctm754 comparetotmag 1.00001 1 -> 1 531 ddctm755 comparetotmag 1.000001 1 -> 1 532 ddctm756 comparetotmag 1.0000001 1 -> 1 533 534 -- Specials 535 ddctm780 comparetotmag Inf -Inf -> 0 536 ddctm781 comparetotmag Inf -1000 -> 1 537 ddctm782 comparetotmag Inf -1 -> 1 538 ddctm783 comparetotmag Inf -0 -> 1 539 ddctm784 comparetotmag Inf 0 -> 1 540 ddctm785 comparetotmag Inf 1 -> 1 541 ddctm786 comparetotmag Inf 1000 -> 1 542 ddctm787 comparetotmag Inf Inf -> 0 543 ddctm788 comparetotmag -1000 Inf -> -1 544 ddctm789 comparetotmag -Inf Inf -> 0 545 ddctm790 comparetotmag -1 Inf -> -1 546 ddctm791 comparetotmag -0 Inf -> -1 547 ddctm792 comparetotmag 0 Inf -> -1 548 ddctm793 comparetotmag 1 Inf -> -1 549 ddctm794 comparetotmag 1000 Inf -> -1 550 ddctm795 comparetotmag Inf Inf -> 0 551 552 ddctm800 comparetotmag -Inf -Inf -> 0 553 ddctm801 comparetotmag -Inf -1000 -> 1 554 ddctm802 comparetotmag -Inf -1 -> 1 555 ddctm803 comparetotmag -Inf -0 -> 1 556 ddctm804 comparetotmag -Inf 0 -> 1 557 ddctm805 comparetotmag -Inf 1 -> 1 558 ddctm806 comparetotmag -Inf 1000 -> 1 559 ddctm807 comparetotmag -Inf Inf -> 0 560 ddctm808 comparetotmag -Inf -Inf -> 0 561 ddctm809 comparetotmag -1000 -Inf -> -1 562 ddctm810 comparetotmag -1 -Inf -> -1 563 ddctm811 comparetotmag -0 -Inf -> -1 564 ddctm812 comparetotmag 0 -Inf -> -1 565 ddctm813 comparetotmag 1 -Inf -> -1 566 ddctm814 comparetotmag 1000 -Inf -> -1 567 ddctm815 comparetotmag Inf -Inf -> 0 568 569 ddctm821 comparetotmag NaN -Inf -> 1 570 ddctm822 comparetotmag NaN -1000 -> 1 571 ddctm823 comparetotmag NaN -1 -> 1 572 ddctm824 comparetotmag NaN -0 -> 1 573 ddctm825 comparetotmag NaN 0 -> 1 574 ddctm826 comparetotmag NaN 1 -> 1 575 ddctm827 comparetotmag NaN 1000 -> 1 576 ddctm828 comparetotmag NaN Inf -> 1 577 ddctm829 comparetotmag NaN NaN -> 0 578 ddctm830 comparetotmag -Inf NaN -> -1 579 ddctm831 comparetotmag -1000 NaN -> -1 580 ddctm832 comparetotmag -1 NaN -> -1 581 ddctm833 comparetotmag -0 NaN -> -1 582 ddctm834 comparetotmag 0 NaN -> -1 583 ddctm835 comparetotmag 1 NaN -> -1 584 ddctm836 comparetotmag 1000 NaN -> -1 585 ddctm837 comparetotmag Inf NaN -> -1 586 ddctm838 comparetotmag -NaN -NaN -> 0 587 ddctm839 comparetotmag +NaN -NaN -> 0 588 ddctm840 comparetotmag -NaN +NaN -> 0 589 590 ddctm841 comparetotmag sNaN -sNaN -> 0 591 ddctm842 comparetotmag sNaN -NaN -> -1 592 ddctm843 comparetotmag sNaN -Inf -> 1 593 ddctm844 comparetotmag sNaN -1000 -> 1 594 ddctm845 comparetotmag sNaN -1 -> 1 595 ddctm846 comparetotmag sNaN -0 -> 1 596 ddctm847 comparetotmag sNaN 0 -> 1 597 ddctm848 comparetotmag sNaN 1 -> 1 598 ddctm849 comparetotmag sNaN 1000 -> 1 599 ddctm850 comparetotmag sNaN NaN -> -1 600 ddctm851 comparetotmag sNaN sNaN -> 0 601 602 ddctm852 comparetotmag -sNaN sNaN -> 0 603 ddctm853 comparetotmag -NaN sNaN -> 1 604 ddctm854 comparetotmag -Inf sNaN -> -1 605 ddctm855 comparetotmag -1000 sNaN -> -1 606 ddctm856 comparetotmag -1 sNaN -> -1 607 ddctm857 comparetotmag -0 sNaN -> -1 608 ddctm858 comparetotmag 0 sNaN -> -1 609 ddctm859 comparetotmag 1 sNaN -> -1 610 ddctm860 comparetotmag 1000 sNaN -> -1 611 ddctm861 comparetotmag Inf sNaN -> -1 612 ddctm862 comparetotmag NaN sNaN -> 1 613 ddctm863 comparetotmag sNaN sNaN -> 0 614 615 ddctm871 comparetotmag -sNaN -sNaN -> 0 616 ddctm872 comparetotmag -sNaN -NaN -> -1 617 ddctm873 comparetotmag -sNaN -Inf -> 1 618 ddctm874 comparetotmag -sNaN -1000 -> 1 619 ddctm875 comparetotmag -sNaN -1 -> 1 620 ddctm876 comparetotmag -sNaN -0 -> 1 621 ddctm877 comparetotmag -sNaN 0 -> 1 622 ddctm878 comparetotmag -sNaN 1 -> 1 623 ddctm879 comparetotmag -sNaN 1000 -> 1 624 ddctm880 comparetotmag -sNaN NaN -> -1 625 ddctm881 comparetotmag -sNaN sNaN -> 0 626 627 ddctm882 comparetotmag -sNaN -sNaN -> 0 628 ddctm883 comparetotmag -NaN -sNaN -> 1 629 ddctm884 comparetotmag -Inf -sNaN -> -1 630 ddctm885 comparetotmag -1000 -sNaN -> -1 631 ddctm886 comparetotmag -1 -sNaN -> -1 632 ddctm887 comparetotmag -0 -sNaN -> -1 633 ddctm888 comparetotmag 0 -sNaN -> -1 634 ddctm889 comparetotmag 1 -sNaN -> -1 635 ddctm890 comparetotmag 1000 -sNaN -> -1 636 ddctm891 comparetotmag Inf -sNaN -> -1 637 ddctm892 comparetotmag NaN -sNaN -> 1 638 ddctm893 comparetotmag sNaN -sNaN -> 0 639 640 -- NaNs with payload 641 ddctm960 comparetotmag NaN9 -Inf -> 1 642 ddctm961 comparetotmag NaN8 999 -> 1 643 ddctm962 comparetotmag NaN77 Inf -> 1 644 ddctm963 comparetotmag -NaN67 NaN5 -> 1 645 ddctm964 comparetotmag -Inf -NaN4 -> -1 646 ddctm965 comparetotmag -999 -NaN33 -> -1 647 ddctm966 comparetotmag Inf NaN2 -> -1 648 649 ddctm970 comparetotmag -NaN41 -NaN42 -> -1 650 ddctm971 comparetotmag +NaN41 -NaN42 -> -1 651 ddctm972 comparetotmag -NaN41 +NaN42 -> -1 652 ddctm973 comparetotmag +NaN41 +NaN42 -> -1 653 ddctm974 comparetotmag -NaN42 -NaN01 -> 1 654 ddctm975 comparetotmag +NaN42 -NaN01 -> 1 655 ddctm976 comparetotmag -NaN42 +NaN01 -> 1 656 ddctm977 comparetotmag +NaN42 +NaN01 -> 1 657 658 ddctm980 comparetotmag -sNaN771 -sNaN772 -> -1 659 ddctm981 comparetotmag +sNaN771 -sNaN772 -> -1 660 ddctm982 comparetotmag -sNaN771 +sNaN772 -> -1 661 ddctm983 comparetotmag +sNaN771 +sNaN772 -> -1 662 ddctm984 comparetotmag -sNaN772 -sNaN771 -> 1 663 ddctm985 comparetotmag +sNaN772 -sNaN771 -> 1 664 ddctm986 comparetotmag -sNaN772 +sNaN771 -> 1 665 ddctm987 comparetotmag +sNaN772 +sNaN771 -> 1 666 667 ddctm991 comparetotmag -sNaN99 -Inf -> 1 668 ddctm992 comparetotmag sNaN98 -11 -> 1 669 ddctm993 comparetotmag sNaN97 NaN -> -1 670 ddctm994 comparetotmag sNaN16 sNaN94 -> -1 671 ddctm995 comparetotmag NaN85 sNaN83 -> 1 672 ddctm996 comparetotmag -Inf sNaN92 -> -1 673 ddctm997 comparetotmag 088 sNaN81 -> -1 674 ddctm998 comparetotmag Inf sNaN90 -> -1 675 ddctm999 comparetotmag NaN -sNaN89 -> 1 676 677 -- spread zeros 678 ddctm1110 comparetotmag 0E-383 0 -> -1 679 ddctm1111 comparetotmag 0E-383 -0 -> -1 680 ddctm1112 comparetotmag -0E-383 0 -> -1 681 ddctm1113 comparetotmag -0E-383 -0 -> -1 682 ddctm1114 comparetotmag 0E-383 0E+384 -> -1 683 ddctm1115 comparetotmag 0E-383 -0E+384 -> -1 684 ddctm1116 comparetotmag -0E-383 0E+384 -> -1 685 ddctm1117 comparetotmag -0E-383 -0E+384 -> -1 686 ddctm1118 comparetotmag 0 0E+384 -> -1 687 ddctm1119 comparetotmag 0 -0E+384 -> -1 688 ddctm1120 comparetotmag -0 0E+384 -> -1 689 ddctm1121 comparetotmag -0 -0E+384 -> -1 690 691 ddctm1130 comparetotmag 0E+384 0 -> 1 692 ddctm1131 comparetotmag 0E+384 -0 -> 1 693 ddctm1132 comparetotmag -0E+384 0 -> 1 694 ddctm1133 comparetotmag -0E+384 -0 -> 1 695 ddctm1134 comparetotmag 0E+384 0E-383 -> 1 696 ddctm1135 comparetotmag 0E+384 -0E-383 -> 1 697 ddctm1136 comparetotmag -0E+384 0E-383 -> 1 698 ddctm1137 comparetotmag -0E+384 -0E-383 -> 1 699 ddctm1138 comparetotmag 0 0E-383 -> 1 700 ddctm1139 comparetotmag 0 -0E-383 -> 1 701 ddctm1140 comparetotmag -0 0E-383 -> 1 702 ddctm1141 comparetotmag -0 -0E-383 -> 1 703 704 -- Null tests 705 ddctm9990 comparetotmag 10 # -> NaN Invalid_operation 706 ddctm9991 comparetotmag # 10 -> NaN Invalid_operation 707