| Thomas Wouters | 1b7f891 | 2007-09-19 03:06:30 +0000 | [diff] [blame] | 1 | ------------------------------------------------------------------------
 | 
 | 2 | -- dqCanonical.decTest -- test decQuad canonical results              --
 | 
| Benjamin Peterson | f17ff4e | 2008-07-31 16:32:12 +0000 | [diff] [blame] | 3 | -- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --
 | 
| Thomas Wouters | 1b7f891 | 2007-09-19 03:06:30 +0000 | [diff] [blame] | 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@uk.ibm.com                                                   --
 | 
 | 19 | ------------------------------------------------------------------------
 | 
| Mark Dickinson | 8a54653 | 2009-10-08 16:30:38 +0000 | [diff] [blame] | 20 | version: 2.59
 | 
| Thomas Wouters | 1b7f891 | 2007-09-19 03:06:30 +0000 | [diff] [blame] | 21 | 
 | 
 | 22 | -- This file tests that copy operations leave uncanonical operands
 | 
 | 23 | -- unchanged, and vice versa
 | 
 | 24 | 
 | 
 | 25 | -- All operands and results are decQuads.
 | 
 | 26 | extended:    1
 | 
 | 27 | clamp:       1
 | 
 | 28 | precision:   34
 | 
 | 29 | maxExponent: 6144
 | 
 | 30 | minExponent: -6143
 | 
 | 31 | rounding:    half_even
 | 
 | 32 | 
 | 
 | 33 | -- Uncanonical declets are: abc, where:
 | 
 | 34 | --   a=1,2,3
 | 
 | 35 | --   b=6,7,e,f
 | 
 | 36 | --   c=e,f
 | 
 | 37 | 
 | 
 | 38 | -- assert some standard (canonical) values; this tests that FromString
 | 
 | 39 | -- produces canonical results (many more in decimalNN)
 | 
 | 40 | dqcan001 apply 9.999999999999999999999999999999999E+6144  -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 41 | dqcan002 apply 0                      -> #22080000000000000000000000000000
 | 
 | 42 | dqcan003 apply 1                      -> #22080000000000000000000000000001
 | 
 | 43 | dqcan004 apply -1                     -> #a2080000000000000000000000000001
 | 
 | 44 | dqcan005 apply Infinity               -> #78000000000000000000000000000000
 | 
 | 45 | dqcan006 apply -Infinity              -> #f8000000000000000000000000000000
 | 
 | 46 | dqcan007 apply -NaN                   -> #fc000000000000000000000000000000
 | 
 | 47 | dqcan008 apply -sNaN                  -> #fe000000000000000000000000000000
 | 
 | 48 | dqcan009 apply  NaN999999999999999999999999999999999  -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 49 | dqcan010 apply sNaN999999999999999999999999999999999  -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 50 | decan011 apply  9999999999999999999999999999999999    -> #6e080ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 51 | dqcan012 apply 7.50                                   -> #220780000000000000000000000003d0
 | 
 | 52 | dqcan013 apply 9.99                                   -> #220780000000000000000000000000ff
 | 
 | 53 | 
 | 
 | 54 | -- Base tests for canonical encodings (individual operator
 | 
 | 55 | -- propagation is tested later)
 | 
 | 56 | 
 | 
 | 57 | -- Finites: declets in coefficient
 | 
 | 58 | dqcan021 canonical  #77ffcff3fcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 59 | dqcan022 canonical  #77fffff3fcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 60 | dqcan023 canonical  #77ffcffffcff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 61 | dqcan024 canonical  #77ffcff3ffff3fcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 62 | dqcan025 canonical  #77ffcff3fcffffcff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 63 | dqcan026 canonical  #77ffcff3fcff3ffff3fcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 64 | dqcan027 canonical  #77ffcff3fcff3fcffffcff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 65 | dqcan028 canonical  #77ffcff3fcff3fcff3ffff3fcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 66 | dqcan029 canonical  #77ffcff3fcff3fcff3fcffffcff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 67 | dqcan030 canonical  #77ffcff3fcff3fcff3fcff3ffff3fcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 68 | dqcan031 canonical  #77ffcff3fcff3fcff3fcff3fcffffcff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 69 | dqcan032 canonical  #77ffcff3fcff3fcff3fcff3fcff3ffff -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 70 | 
 | 
 | 71 | -- NaN: declets in payload
 | 
 | 72 | dqcan061 canonical  #7c000ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 73 | dqcan062 canonical  #7c000ffffcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 74 | dqcan063 canonical  #7c000ff3ffff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 75 | dqcan064 canonical  #7c000ff3fcffffcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 76 | dqcan065 canonical  #7c000ff3fcff3ffff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 77 | dqcan066 canonical  #7c000ff3fcff3fcffffcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 78 | dqcan067 canonical  #7c000ff3fcff3fcff3ffff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 79 | dqcan068 canonical  #7c000ff3fcff3fcff3fcffffcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 80 | dqcan069 canonical  #7c000ff3fcff3fcff3fcff3ffff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 81 | dqcan070 canonical  #7c000ff3fcff3fcff3fcff3fcffffcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 82 | dqcan071 canonical  #7c000ff3fcff3fcff3fcff3fcff3ffff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 83 | -- NaN: exponent continuation bits [excluding sNaN selector]
 | 
 | 84 | dqcan081 canonical  #7d000ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 85 | dqcan082 canonical  #7c800ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 86 | dqcan083 canonical  #7c400ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 87 | dqcan084 canonical  #7c200ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 88 | dqcan085 canonical  #7c100ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 89 | dqcan086 canonical  #7c080ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 90 | dqcan087 canonical  #7c040ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 91 | dqcan088 canonical  #7c020ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 92 | dqcan089 canonical  #7c010ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 93 | dqcan090 canonical  #7c008ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 94 | dqcan091 canonical  #7c004ff3fcff3fcff3fcff3fcff3fcff -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 95 | 
 | 
 | 96 | -- sNaN: declets in payload
 | 
 | 97 | dqcan101 canonical  #7e000ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 98 | dqcan102 canonical  #7e000ffffcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 99 | dqcan103 canonical  #7e000ff3ffff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 100 | dqcan104 canonical  #7e000ff3fcffffcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 101 | dqcan105 canonical  #7e000ff3fcff3ffff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 102 | dqcan106 canonical  #7e000ff3fcff3fcffffcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 103 | dqcan107 canonical  #7e000ff3fcff3fcff3ffff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 104 | dqcan108 canonical  #7e000ff3fcff3fcff3fcffffcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 105 | dqcan109 canonical  #7e000ff3fcff3fcff3fcff3ffff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 106 | dqcan100 canonical  #7e000ff3fcff3fcff3fcff3fcffffcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 107 | dqcan111 canonical  #7e000ff3fcff3fcff3fcff3fcff3ffff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 108 | -- sNaN: exponent continuation bits [excluding sNaN selector]
 | 
 | 109 | dqcan121 canonical  #7f000ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 110 | dqcan122 canonical  #7e800ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 111 | dqcan123 canonical  #7e400ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 112 | dqcan124 canonical  #7e200ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 113 | dqcan125 canonical  #7e100ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 114 | dqcan126 canonical  #7e080ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 115 | dqcan127 canonical  #7e040ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 116 | dqcan128 canonical  #7e020ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 117 | dqcan129 canonical  #7e010ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 118 | dqcan130 canonical  #7e008ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 119 | dqcan131 canonical  #7e004ff3fcff3fcff3fcff3fcff3fcff -> #7e000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 120 | 
 | 
 | 121 | -- Inf: exponent continuation bits
 | 
 | 122 | dqcan137 canonical  #78000000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 123 | dqcan138 canonical  #79000000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 124 | dqcan139 canonical  #7a000000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 125 | dqcan140 canonical  #78800000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 126 | dqcan141 canonical  #78400000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 127 | dqcan142 canonical  #78200000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 128 | dqcan143 canonical  #78100000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 129 | dqcan144 canonical  #78080000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 130 | dqcan145 canonical  #78040000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 131 | dqcan146 canonical  #78020000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 132 | dqcan147 canonical  #78010000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 133 | dqcan148 canonical  #78008000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 134 | dqcan149 canonical  #78004000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 135 | 
 | 
 | 136 | -- Inf: coefficient continuation bits (first, last, and a few others)
 | 
 | 137 | dqcan150 canonical  #78000000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 138 | dqcan151 canonical  #78020000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 139 | dqcan152 canonical  #78000000000000000000000000000001 -> #78000000000000000000000000000000
 | 
 | 140 | dqcan153 canonical  #78010000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 141 | dqcan154 canonical  #78002000000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 142 | dqcan155 canonical  #78000800000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 143 | dqcan156 canonical  #78000020000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 144 | dqcan157 canonical  #78000004000000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 145 | dqcan158 canonical  #78000000400000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 146 | dqcan159 canonical  #78000000080000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 147 | dqcan160 canonical  #78000000004000000000000000000000 -> #78000000000000000000000000000000
 | 
 | 148 | dqcan161 canonical  #78000000000200000000000000000000 -> #78000000000000000000000000000000
 | 
 | 149 | dqcan162 canonical  #78000000000080000000000000000000 -> #78000000000000000000000000000000
 | 
 | 150 | dqcan163 canonical  #78000000000002000000000000000000 -> #78000000000000000000000000000000
 | 
 | 151 | dqcan164 canonical  #78000000000000400000000000000000 -> #78000000000000000000000000000000
 | 
 | 152 | dqcan165 canonical  #78000000000000080000000000000000 -> #78000000000000000000000000000000
 | 
 | 153 | dqcan166 canonical  #78000000000000001000000000000000 -> #78000000000000000000000000000000
 | 
 | 154 | dqcan167 canonical  #78000000000000000200000000000000 -> #78000000000000000000000000000000
 | 
 | 155 | dqcan168 canonical  #78000000000000000080000000000000 -> #78000000000000000000000000000000
 | 
 | 156 | dqcan169 canonical  #78000000000000000004000000000000 -> #78000000000000000000000000000000
 | 
 | 157 | dqcan170 canonical  #78000000000000000000400000000000 -> #78000000000000000000000000000000
 | 
 | 158 | dqcan171 canonical  #78000000000000000000010000000000 -> #78000000000000000000000000000000
 | 
 | 159 | dqcan172 canonical  #78000000000000000000002000000000 -> #78000000000000000000000000000000
 | 
 | 160 | dqcan173 canonical  #78000000000000000000000400000000 -> #78000000000000000000000000000000
 | 
 | 161 | dqcan174 canonical  #78000000000000000000000080000000 -> #78000000000000000000000000000000
 | 
 | 162 | dqcan175 canonical  #78000000000000000000000002000000 -> #78000000000000000000000000000000
 | 
 | 163 | dqcan176 canonical  #78000000000000000000000000400000 -> #78000000000000000000000000000000
 | 
 | 164 | dqcan177 canonical  #78000000000000000000000000020000 -> #78000000000000000000000000000000
 | 
 | 165 | dqcan178 canonical  #78000000000000000000000000001000 -> #78000000000000000000000000000000
 | 
 | 166 | dqcan179 canonical  #78000000000000000000000000000400 -> #78000000000000000000000000000000
 | 
 | 167 | dqcan180 canonical  #78000000000000000000000000000020 -> #78000000000000000000000000000000
 | 
 | 168 | dqcan181 canonical  #78000000000000000000000000000008 -> #78000000000000000000000000000000
 | 
 | 169 | 
 | 
 | 170 | 
 | 
 | 171 | -- Now the operators -- trying to check paths that might fail to
 | 
 | 172 | -- canonicalize propagated operands
 | 
 | 173 | 
 | 
 | 174 | ----- Add:
 | 
 | 175 | -- Finites: neutral 0
 | 
 | 176 | dqcan202 add  0E+6144 #77ffcff3fcff3fcffffcff3fcff3fcff         -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 177 | dqcan203 add          #77ffcff3fcff3fcff3fcff3ffff3fcff 0E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 178 | -- tiny zero
 | 
 | 179 | dqcan204 add  0E-6176 #77ffcff3ffff3fcff3fcff3fcff3fcff         -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded
 | 
 | 180 | dqcan205 add          #77ffcff3fcff3fcff3fcff3fcff3ffff 0E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded
 | 
 | 181 | -- tiny non zero
 | 
 | 182 | dqcan206 add -1E-6176 #77ffcff3fcff3fcff3fcff3fcfffffff          -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
 | 
 | 183 | dqcan207 add          #77ffcffffffffffffffffffffff3fcff -1E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
 | 
 | 184 | -- NaN: declets in payload
 | 
 | 185 | dqcan211 add  0  #7c000ff3fcff3fcff3fcfffffff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 186 | dqcan212 add     #7c000ff3fcff3fcfffffff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 187 | -- NaN: exponent continuation bits [excluding sNaN selector]
 | 
 | 188 | dqcan213 add  0  #7c400ff3fcff3fcff3fcff3fcff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 189 | dqcan214 add     #7c020ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 190 | -- sNaN: declets in payload
 | 
 | 191 | dqcan215 add  0  #7e000ff3fcffffcff3fcff3fcff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
 | 
 | 192 | dqcan216 add     #7e003ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
 | 
 | 193 | -- sNaN: exponent continuation bits [excluding sNaN selector]
 | 
 | 194 | dqcan217 add  0  #7e500ff3fcff3fcff3fcff3fcff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
 | 
 | 195 | dqcan218 add     #7e0e0ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
 | 
 | 196 | -- Inf: exponent continuation bits
 | 
 | 197 | dqcan220 add  0  #78010000000000000000000000000000   -> #78000000000000000000000000000000
 | 
 | 198 | dqcan221 add     #78680000000000000000000000000000 0 -> #78000000000000000000000000000000
 | 
 | 199 | -- Inf: coefficient continuation bits
 | 
 | 200 | dqcan222 add  0  #78002000000000000000000000000000   -> #78000000000000000000000000000000
 | 
 | 201 | dqcan223 add     #78000000000000000000000000000001 0 -> #78000000000000000000000000000000
 | 
 | 202 | dqcan224 add  0  #78000002000000000000000000000000   -> #78000000000000000000000000000000
 | 
 | 203 | dqcan225 add     #780000000000f0000000000000000000 0 -> #78000000000000000000000000000000
 | 
 | 204 | dqcan226 add  0  #78000000000000000005000000000000   -> #78000000000000000000000000000000
 | 
 | 205 | dqcan227 add     #780000000000000000000000000a0000 0 -> #78000000000000000000000000000000
 | 
 | 206 | 
 | 
 | 207 | ----- Class: [does not return encoded]
 | 
 | 208 | 
 | 
 | 209 | ----- Compare:
 | 
 | 210 | dqcan231 compare -Inf   1     ->  #a2080000000000000000000000000001
 | 
 | 211 | dqcan232 compare -Inf  -Inf   ->  #22080000000000000000000000000000
 | 
 | 212 | dqcan233 compare  1    -Inf   ->  #22080000000000000000000000000001
 | 
 | 213 | dqcan234 compare  #7c010ff3fcff3fcff3fcff3ffffffcff     -1000  -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 214 | dqcan235 compare  #7e004ff3fcff3fcff3ffffffcff3fcff     -1000  -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
 | 
 | 215 | 
 | 
 | 216 | ----- CompareSig:
 | 
 | 217 | dqcan241 comparesig -Inf   1     ->  #a2080000000000000000000000000001
 | 
 | 218 | dqcan242 comparesig -Inf  -Inf   ->  #22080000000000000000000000000000
 | 
 | 219 | dqcan243 comparesig  1    -Inf   ->  #22080000000000000000000000000001
 | 
 | 220 | dqcan244 comparesig  #7c400ff3ffff3fcff3fcff3fcff3fcff   -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
 | 
 | 221 | dqcan245 comparesig  #7e050ff3fcfffffff3fcff3fcff3fcff   -1000 -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
 | 
 | 222 | 
 | 
 | 223 | ----- Copy: [does not usually canonicalize]
 | 
 | 224 | -- finites
 | 
 | 225 | dqcan250 copy  #6e080ff3fcff3fcfffffff3fcfffffff -> #6e080ff3fcff3fcfffffff3fcfffffff
 | 
 | 226 | dqcan251 copy  #ee080ff3fcff3ffff3fcff3ffff3fcff -> #ee080ff3fcff3ffff3fcff3ffff3fcff
 | 
 | 227 | -- NaNs
 | 
 | 228 | dqcan252 copy  #7c000ff3fcffffffffffffffcff3fcff -> #7c000ff3fcffffffffffffffcff3fcff
 | 
 | 229 | dqcan253 copy  #7c080ff3fcff3fcff3fcff3fcff3fcff -> #7c080ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 230 | -- sNaN
 | 
 | 231 | dqcan254 copy  #7e003ff3fcffffffffffffffcff3fcff -> #7e003ff3fcffffffffffffffcff3fcff
 | 
 | 232 | dqcan255 copy  #7e100ff3fcff3fcff3fcff3fcff3fcff -> #7e100ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 233 | -- Inf
 | 
 | 234 | dqcan258 copy  #78002000000000000000000000000000 -> #78002000000000000000000000000000
 | 
 | 235 | dqcan259 copy  #78000000000010000000000000100000 -> #78000000000010000000000000100000
 | 
 | 236 | 
 | 
 | 237 | ----- CopyAbs: [does not usually canonicalize]
 | 
 | 238 | -- finites
 | 
 | 239 | dqcan260 copyabs  #6e080ff3fcff3fcfffffff3fcfffffff -> #6e080ff3fcff3fcfffffff3fcfffffff
 | 
 | 240 | dqcan261 copyabs  #ee080ff3fcff3ffff3fcff3ffff3fcff -> #6e080ff3fcff3ffff3fcff3ffff3fcff
 | 
 | 241 | -- NaNs
 | 
 | 242 | dqcan262 copyabs  #fc000ff3fcffffffffffffffcff3fcff -> #7c000ff3fcffffffffffffffcff3fcff
 | 
 | 243 | dqcan263 copyabs  #fc080ff3fcff3fcff3fcff3fcff3fcff -> #7c080ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 244 | -- sNaN
 | 
 | 245 | dqcan264 copyabs  #fe003ff3fcffffffffffffffcff3fcff -> #7e003ff3fcffffffffffffffcff3fcff
 | 
 | 246 | dqcan265 copyabs  #fe100ff3fcff3fcff3fcff3fcff3fcff -> #7e100ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 247 | -- Inf
 | 
 | 248 | dqcan268 copyabs  #f8002000000000000000000000000000 -> #78002000000000000000000000000000
 | 
 | 249 | dqcan269 copyabs  #f8000000000000700700700000000000 -> #78000000000000700700700000000000
 | 
 | 250 | 
 | 
 | 251 | ----- CopyNegate: [does not usually canonicalize]
 | 
 | 252 | -- finites
 | 
 | 253 | dqcan270 copynegate  #6e080ff3fcff3fcfffffff3fcfffffff -> #ee080ff3fcff3fcfffffff3fcfffffff
 | 
 | 254 | dqcan271 copynegate  #ee080ff3fcff3ffff3fcff3ffff3fcff -> #6e080ff3fcff3ffff3fcff3ffff3fcff
 | 
 | 255 | -- NaNs
 | 
 | 256 | dqcan272 copynegate  #7c000ff3fcffffffffffff3fcff3fcff -> #fc000ff3fcffffffffffff3fcff3fcff
 | 
 | 257 | dqcan273 copynegate  #7c080ff3fcff3fcff3fcff3fcff3fcff -> #fc080ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 258 | -- sNaN
 | 
 | 259 | dqcan274 copynegate  #7e003ff3fcffffffffffffffcff3fcff -> #fe003ff3fcffffffffffffffcff3fcff
 | 
 | 260 | dqcan275 copynegate  #7e100ff3fcff3fcff3fcff3fcff3fcff -> #fe100ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 261 | -- Inf
 | 
 | 262 | dqcan278 copynegate  #78002000000000000000000000000000 -> #f8002000000000000000000000000000
 | 
 | 263 | dqcan279 copynegate  #78000000000010000000000000100000 -> #f8000000000010000000000000100000
 | 
 | 264 | 
 | 
 | 265 | ----- CopySign: [does not usually canonicalize]
 | 
 | 266 | -- finites
 | 
 | 267 | dqcan280 copysign  #6e080ff3fcff3fcfffffff3fcfffffff -1 -> #ee080ff3fcff3fcfffffff3fcfffffff
 | 
 | 268 | dqcan281 copysign  #ee080ff3fcff3ffff3fcff3ffff3fcff  1 -> #6e080ff3fcff3ffff3fcff3ffff3fcff
 | 
 | 269 | -- NaNs
 | 
 | 270 | dqcan282 copysign  #7c000ff3fcffffffffffffffcff3fcff -1 -> #fc000ff3fcffffffffffffffcff3fcff
 | 
 | 271 | dqcan283 copysign  #7c080ff3fcff3fcff3fcff3fcff3fcff  1 -> #7c080ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 272 | -- sNaN
 | 
 | 273 | dqcan284 copysign  #7e003ff3fcffffffffffffffcff3fcff -1 -> #fe003ff3fcffffffffffffffcff3fcff
 | 
 | 274 | dqcan285 copysign  #7e100ff3fcff3fcff3fcff3fcff3fcff  1 -> #7e100ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 275 | -- Inf
 | 
 | 276 | dqcan288 copysign  #78002000000000000000000000000000 -1 -> #f8002000000000000000000000000000
 | 
 | 277 | dqcan289 copysign  #78000000000010000000000000100000  1 -> #78000000000010000000000000100000
 | 
 | 278 | 
 | 
 | 279 | ----- Multiply:
 | 
 | 280 | -- Finites: neutral 0
 | 
 | 281 | dqcan302 multiply  1  #77ffff3fcff3fcff0000000000000000               -> #77ffff3fcff3fcff0000000000000000
 | 
 | 282 | dqcan303 multiply     #77fcffffcff3fcff0000000000000000 1             -> #77fccfffcff3fcff0000000000000000
 | 
 | 283 | -- negative
 | 
 | 284 | dqcan306 multiply -1  #77ffff3fcff3fcff0000000000000000               -> #f7ffff3fcff3fcff0000000000000000
 | 
 | 285 | dqcan307 multiply     #77fcffffcff3fcff0000000000000000 -1            -> #f7fccfffcff3fcff0000000000000000
 | 
 | 286 | -- NaN: declets in payload
 | 
 | 287 | dqcan311 multiply  1  #7c03ff3fcff3fcff0000000000000000               -> #7c003f3fcff3fcff0000000000000000
 | 
 | 288 | dqcan312 multiply     #7c03ff3fcff3fcff0000000000000000 1             -> #7c003f3fcff3fcff0000000000000000
 | 
 | 289 | -- NaN: exponent continuation bits [excluding sNaN selector]
 | 
 | 290 | dqcan313 multiply  1  #7c40ff3fcff3fcff0000000000000000               -> #7c003f3fcff3fcff0000000000000000
 | 
 | 291 | dqcan314 multiply     #7c40ff3fcff3fcff0000000000000000 1             -> #7c003f3fcff3fcff0000000000000000
 | 
 | 292 | -- sNaN: declets in payload
 | 
 | 293 | dqcan315 multiply  1  #7e00ffffcff3fcff0000000000000000               -> #7c000fffcff3fcff0000000000000000 Invalid_operation
 | 
 | 294 | dqcan316 multiply     #7e00ffffcff3fcff0000000000000000 1             -> #7c000fffcff3fcff0000000000000000 Invalid_operation
 | 
 | 295 | -- sNaN: exponent continuation bits [excluding sNaN selector]
 | 
 | 296 | dqcan317 multiply  1  #7e80ff3fcff3fcff0000000000000000               -> #7c003f3fcff3fcff0000000000000000 Invalid_operation
 | 
 | 297 | dqcan318 multiply     #7e80ff3fcff3fcff0000000000000000 1             -> #7c003f3fcff3fcff0000000000000000 Invalid_operation
 | 
 | 298 | -- Inf: exponent continuation bits
 | 
 | 299 | dqcan320 multiply  1  #78800000000000000000000000000000               -> #78000000000000000000000000000000
 | 
 | 300 | dqcan321 multiply     #78800000000000000000000000000000 1             -> #78000000000000000000000000000000
 | 
 | 301 | -- Inf: coefficient continuation bits
 | 
 | 302 | dqcan322 multiply  1  #78020000000000000000000000000000               -> #78000000000000000000000000000000
 | 
 | 303 | dqcan323 multiply     #78020000000000000000000000000000 1             -> #78000000000000000000000000000000
 | 
 | 304 | dqcan324 multiply  1  #78000000000000010000000000000000               -> #78000000000000000000000000000000
 | 
 | 305 | dqcan325 multiply     #78000000000000010000000000000000 1             -> #78000000000000000000000000000000
 | 
 | 306 | dqcan326 multiply  1  #78000020000000000000000000000000               -> #78000000000000000000000000000000
 | 
 | 307 | dqcan327 multiply     #78000020000000000000000000000000 1             -> #78000000000000000000000000000000
 | 
 | 308 | 
 | 
 | 309 | ----- Quantize:
 | 
 | 310 | dqcan401 quantize  #ee080ff3fcff3fcff3fffffffff3fcff 0    -> #ee080ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 311 | dqcan402 quantize  #ee080ff3fffffffffffcff3fcff3fcff 0    -> #ee080ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 312 | dqcan403 quantize  #78800000000000000000000000000000 Inf  -> #78000000000000000000000000000000
 | 
 | 313 | dqcan404 quantize  #78020000000000000000000000000000 -Inf -> #78000000000000000000000000000000
 | 
 | 314 | dqcan410 quantize  #7c080ff3fcff3fcff3fcff3fcff3fcff  1   -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 315 | dqcan411 quantize  #fc000ff3fcfffffff3fcff3fcff3fcff  1   -> #fc000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 316 | dqcan412 quantize  #7e100ff3fcff3fcff3fcff3fcff3fcff  1   -> #7c000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
 | 
 | 317 | dqcan413 quantize  #fe000ff3fcff3fcff3ffffffcff3fcff  1   -> #fc000ff3fcff3fcff3fcff3fcff3fcff Invalid_operation
 | 
 | 318 | 
 | 
 | 319 | ----- Subtract:
 | 
 | 320 | -- Finites: neutral 0
 | 
 | 321 | dqcan502 subtract  0E+6144 #77ffcff3fcff3fcffffcff3fcff3fcff         -> #f7ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 322 | dqcan503 subtract          #77ffcff3fcff3fcff3fcff3ffff3fcff 0E+6144 -> #77ffcff3fcff3fcff3fcff3fcff3fcff
 | 
 | 323 | -- tiny zero
 | 
 | 324 | dqcan504 subtract  0E-6176 #77ffcff3ffff3fcff3fcff3fcff3fcff         -> #f7ffcff3fcff3fcff3fcff3fcff3fcff Rounded
 | 
 | 325 | dqcan505 subtract          #77ffcff3fcff3fcff3fcff3fcff3ffff 0E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Rounded
 | 
 | 326 | -- tiny non zero
 | 
 | 327 | dqcan506 subtract -1E-6176 #77ffcff3fcff3fcff3fcff3fcfffffff          -> #f7ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
 | 
 | 328 | dqcan507 subtract          #77ffcffffffffffffffffffffff3fcff -1E-6176 -> #77ffcff3fcff3fcff3fcff3fcff3fcff Inexact Rounded
 | 
 | 329 | -- NaN: declets in payload
 | 
 | 330 | dqcan511 subtract  0  #7c000ff3fcff3fcff3fcfffffff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 331 | dqcan512 subtract     #7c000ff3fcff3fcfffffff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 332 | -- NaN: exponent continuation bits [excluding sNaN selector]
 | 
 | 333 | dqcan513 subtract  0  #7c400ff3fcff3fcff3fcff3fcff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 334 | dqcan514 subtract     #7c020ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 335 | -- sNaN: declets in payload
 | 
 | 336 | dqcan515 subtract  0  #7e000ff3fcffffcff3fcff3fcff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
 | 
 | 337 | dqcan516 subtract     #7e003ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
 | 
 | 338 | -- sNaN: exponent continuation bits [excluding sNaN selector]
 | 
 | 339 | dqcan517 subtract  0  #7e500ff3fcff3fcff3fcff3fcff3fcff   -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
 | 
 | 340 | dqcan518 subtract     #7e0e0ff3fcff3fcff3fcff3fcff3fcff 0 -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
 | 
 | 341 | -- Inf: exponent continuation bits
 | 
 | 342 | dqcan520 subtract  0  #78010000000000000000000000000000   -> #f8000000000000000000000000000000
 | 
 | 343 | dqcan521 subtract     #78680000000000000000000000000000 0 -> #78000000000000000000000000000000
 | 
 | 344 | -- Inf: coefficient continuation bits
 | 
 | 345 | dqcan522 subtract  0  #78002000000000000000000000000000   -> #f8000000000000000000000000000000
 | 
 | 346 | dqcan523 subtract     #78000000000000000000000000000001 0 -> #78000000000000000000000000000000
 | 
 | 347 | dqcan524 subtract  0  #78000002000000000000000000000000   -> #f8000000000000000000000000000000
 | 
 | 348 | dqcan525 subtract     #780000000000f0000000000000000000 0 -> #78000000000000000000000000000000
 | 
 | 349 | dqcan526 subtract  0  #78000000000000000005000000000000   -> #f8000000000000000000000000000000
 | 
 | 350 | dqcan527 subtract     #780000000000000000000000000a0000 0 -> #78000000000000000000000000000000
 | 
 | 351 | 
 | 
 | 352 | ----- ToIntegral:
 | 
 | 353 | dqcan601 tointegralx  #6e080ff3fdff3fcff3fcff3fcff3fcff  -> #6e080ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 354 | dqcan602 tointegralx  #ee080ff3fcff3ffff3fcff3fcff3fcff  -> #ee080ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 355 | dqcan603 tointegralx  #78800000000000000000000000000000  -> #78000000000000000000000000000000
 | 
 | 356 | dqcan604 tointegralx  #78020000000000000000000000000000  -> #78000000000000000000000000000000
 | 
 | 357 | dqcan614 tointegralx  #7c100ff3fcff3fcff3fcff3fcff3fcff  -> #7c000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 358 | dqcan615 tointegralx  #fc000ff3fcff3fcff3fcffffcff3fcff  -> #fc000ff3fcff3fcff3fcff3fcff3fcff
 | 
 | 359 | dqcan616 tointegralx  #7e010ff3fcff3fcff3fcff3fcff3fcff  -> #7c000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
 | 
 | 360 | dqcan617 tointegralx  #fe000ff3fcff3fcff3fdff3fcff3fcff  -> #fc000ff3fcff3fcff3fcff3fcff3fcff  Invalid_operation
 | 
 | 361 | -- uncanonical 3999, 39.99, 3.99, 0.399,                  and negatives
 | 
 | 362 | dqcan618 tointegralx  #22080000000000000000000000000fff  -> #22080000000000000000000000000cff
 | 
 | 363 | dqcan619 tointegralx  #22078000000000000000000000000fff  -> #22080000000000000000000000000040  Inexact Rounded
 | 
 | 364 | dqcan620 tointegralx  #22074000000000000000000000000fff  -> #22080000000000000000000000000004  Inexact Rounded
 | 
 | 365 | dqcan621 tointegralx  #22070000000000000000000000000fff  -> #22080000000000000000000000000000  Inexact Rounded
 | 
 | 366 | dqcan622 tointegralx  #a2080000000000000000000000000fff  -> #a2080000000000000000000000000cff
 | 
 | 367 | dqcan623 tointegralx  #a2078000000000000000000000000fff  -> #a2080000000000000000000000000040  Inexact Rounded
 | 
 | 368 | dqcan624 tointegralx  #a2074000000000000000000000000fff  -> #a2080000000000000000000000000004  Inexact Rounded
 | 
 | 369 | dqcan625 tointegralx  #a2070000000000000000000000000fff  -> #a2080000000000000000000000000000  Inexact Rounded
 | 
 | 370 | 
 | 
 | 371 | 
 | 
 | 372 | 
 |