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 |
|