Thomas Wouters | 1b7f891 | 2007-09-19 03:06:30 +0000 | [diff] [blame^] | 1 | version: ?.?? |
| 2 | |
| 3 | extended: 1 |
| 4 | rounding: half_even |
| 5 | |
| 6 | -- testing folddown and clamping |
| 7 | maxexponent: 9 |
| 8 | minexponent: -9 |
| 9 | precision: 6 |
| 10 | clamp: 1 |
| 11 | extr0000 apply 1E+11 -> Infinity Overflow Inexact Rounded |
| 12 | extr0001 apply 1E+10 -> Infinity Overflow Inexact Rounded |
| 13 | extr0002 apply 1E+9 -> 1.00000E+9 Clamped |
| 14 | extr0003 apply 1E+8 -> 1.0000E+8 Clamped |
| 15 | extr0004 apply 1E+7 -> 1.000E+7 Clamped |
| 16 | extr0005 apply 1E+6 -> 1.00E+6 Clamped |
| 17 | extr0006 apply 1E+5 -> 1.0E+5 Clamped |
| 18 | extr0007 apply 1E+4 -> 1E+4 |
| 19 | extr0008 apply 1E+3 -> 1E+3 |
| 20 | extr0009 apply 1E+2 -> 1E+2 |
| 21 | extr0010 apply 1E+1 -> 1E+1 |
| 22 | extr0011 apply 1 -> 1 |
| 23 | extr0012 apply 1E-1 -> 0.1 |
| 24 | extr0013 apply 1E-2 -> 0.01 |
| 25 | extr0014 apply 1E-3 -> 0.001 |
| 26 | extr0015 apply 1E-4 -> 0.0001 |
| 27 | extr0016 apply 1E-5 -> 0.00001 |
| 28 | extr0017 apply 1E-6 -> 0.000001 |
| 29 | extr0018 apply 1E-7 -> 1E-7 |
| 30 | extr0019 apply 1E-8 -> 1E-8 |
| 31 | extr0020 apply 1E-9 -> 1E-9 |
| 32 | extr0021 apply 1E-10 -> 1E-10 Subnormal |
| 33 | extr0022 apply 1E-11 -> 1E-11 Subnormal |
| 34 | extr0023 apply 1E-12 -> 1E-12 Subnormal |
| 35 | extr0024 apply 1E-13 -> 1E-13 Subnormal |
| 36 | extr0025 apply 1E-14 -> 1E-14 Subnormal |
| 37 | extr0026 apply 1E-15 -> 0E-14 Inexact Rounded Subnormal Underflow Clamped |
| 38 | extr0027 apply 1E-16 -> 0E-14 Inexact Rounded Subnormal Underflow Clamped |
| 39 | clamp: 0 |
| 40 | |
| 41 | -- large precision, small minimum and maximum exponent; in this case |
| 42 | -- it's possible that folddown is required on a subnormal result |
| 43 | maxexponent: 9 |
| 44 | minexponent: -9 |
| 45 | precision: 24 |
| 46 | clamp: 1 |
| 47 | extr0100 apply 1E+11 -> Infinity Overflow Inexact Rounded |
| 48 | extr0101 apply 1E+10 -> Infinity Overflow Inexact Rounded |
| 49 | extr0102 apply 1E+9 -> 1000000000.00000000000000 Clamped |
| 50 | extr0103 apply 1E+8 -> 100000000.00000000000000 Clamped |
| 51 | extr0104 apply 1E+7 -> 10000000.00000000000000 Clamped |
| 52 | extr0105 apply 1E+6 -> 1000000.00000000000000 Clamped |
| 53 | extr0106 apply 1E+5 -> 100000.00000000000000 Clamped |
| 54 | extr0107 apply 1E+4 -> 10000.00000000000000 Clamped |
| 55 | extr0108 apply 1E+3 -> 1000.00000000000000 Clamped |
| 56 | extr0109 apply 1E+2 -> 100.00000000000000 Clamped |
| 57 | extr0110 apply 1E+1 -> 10.00000000000000 Clamped |
| 58 | extr0111 apply 1 -> 1.00000000000000 Clamped |
| 59 | extr0112 apply 1E-1 -> 0.10000000000000 Clamped |
| 60 | extr0113 apply 1E-2 -> 0.01000000000000 Clamped |
| 61 | extr0114 apply 1E-3 -> 0.00100000000000 Clamped |
| 62 | extr0115 apply 1E-4 -> 0.00010000000000 Clamped |
| 63 | extr0116 apply 1E-5 -> 0.00001000000000 Clamped |
| 64 | extr0117 apply 1E-6 -> 0.00000100000000 Clamped |
| 65 | extr0118 apply 1E-7 -> 1.0000000E-7 Clamped |
| 66 | extr0119 apply 1E-8 -> 1.000000E-8 Clamped |
| 67 | extr0120 apply 1E-9 -> 1.00000E-9 Clamped |
| 68 | extr0121 apply 1E-10 -> 1.0000E-10 Subnormal Clamped |
| 69 | extr0122 apply 1E-11 -> 1.000E-11 Subnormal Clamped |
| 70 | extr0123 apply 1E-12 -> 1.00E-12 Subnormal Clamped |
| 71 | extr0124 apply 1E-13 -> 1.0E-13 Subnormal Clamped |
| 72 | extr0125 apply 1E-14 -> 1E-14 Subnormal |
| 73 | extr0126 apply 1E-15 -> 1E-15 Subnormal |
| 74 | extr0127 apply 1E-16 -> 1E-16 Subnormal |
| 75 | extr0128 apply 1E-17 -> 1E-17 Subnormal |
| 76 | extr0129 apply 1E-18 -> 1E-18 Subnormal |
| 77 | extr0130 apply 1E-19 -> 1E-19 Subnormal |
| 78 | extr0131 apply 1E-20 -> 1E-20 Subnormal |
| 79 | extr0132 apply 1E-21 -> 1E-21 Subnormal |
| 80 | extr0133 apply 1E-22 -> 1E-22 Subnormal |
| 81 | extr0134 apply 1E-23 -> 1E-23 Subnormal |
| 82 | extr0135 apply 1E-24 -> 1E-24 Subnormal |
| 83 | extr0136 apply 1E-25 -> 1E-25 Subnormal |
| 84 | extr0137 apply 1E-26 -> 1E-26 Subnormal |
| 85 | extr0138 apply 1E-27 -> 1E-27 Subnormal |
| 86 | extr0139 apply 1E-28 -> 1E-28 Subnormal |
| 87 | extr0140 apply 1E-29 -> 1E-29 Subnormal |
| 88 | extr0141 apply 1E-30 -> 1E-30 Subnormal |
| 89 | extr0142 apply 1E-31 -> 1E-31 Subnormal |
| 90 | extr0143 apply 1E-32 -> 1E-32 Subnormal |
| 91 | extr0144 apply 1E-33 -> 0E-32 Inexact Rounded Subnormal Underflow Clamped |
| 92 | extr0145 apply 1E-34 -> 0E-32 Inexact Rounded Subnormal Underflow Clamped |
| 93 | clamp: 0 |
| 94 | |
| 95 | -- some buggy addition cases from Python 2.5.x |
| 96 | maxexponent: 999 |
| 97 | minexponent: -999 |
| 98 | precision: 6 |
| 99 | extr1000 add 0E+1000 0E+2000 -> 0E+999 Clamped |
| 100 | extr1001 add 0E+1004 0E+1001 -> 0E+999 Clamped |
| 101 | clamp: 1 |
| 102 | extr1002 add 0E+1000 0E+1000 -> 0E+994 Clamped |
| 103 | clamp: 0 |
| 104 | extr1003 add 0E+1000 0E-1005 -> 0E-1004 Clamped |
| 105 | extr1004 add 0E-1006 0 -> 0E-1004 Clamped |
| 106 | extr1005 add 1E+1000 -1E+1000 -> 0E+999 Clamped |
| 107 | extr1006 add -3.1E+1004 3.1E+1004 -> 0E+999 Clamped |
| 108 | clamp: 1 |
| 109 | extr1007 add 1E+998 -1E+998 -> 0E+994 Clamped |
| 110 | clamp: 0 |
| 111 | extr1008 add 2E-1005 -2E-1005 -> 0E-1004 Clamped |
| 112 | extr1009 add -3.1E-1005 3.1E-1005 -> 0E-1004 Clamped |
| 113 | |
| 114 | precision: 3 |
| 115 | extr1010 add 99949.9 0.200000 -> 1.00E+5 Inexact Rounded |
| 116 | extr1011 add 99949.9 0.100000 -> 1.00E+5 Inexact Rounded |
| 117 | extr1012 add 99849.9 0.200000 -> 9.99E+4 Inexact Rounded |
| 118 | extr1013 add 99849.9 0.100000 -> 9.98E+4 Inexact Rounded |
| 119 | extr1014 add 1.0149 0.00011 -> 1.02 Inexact Rounded |
| 120 | extr1015 add 1.0149 0.00010 -> 1.02 Inexact Rounded |
| 121 | extr1016 add 1.0149 0.00009 -> 1.01 Inexact Rounded |
| 122 | extr1017 add 1.0049 0.00011 -> 1.01 Inexact Rounded |
| 123 | extr1018 add 1.0049 0.00010 -> 1.00 Inexact Rounded |
| 124 | extr1019 add 1.0049 0.00009 -> 1.00 Inexact Rounded |
| 125 | rounding: down |
| 126 | extr1020 add 99999.9 0.200000 -> 1.00E+5 Inexact Rounded |
| 127 | extr1021 add 99999.8 0.200000 -> 1.00E+5 Rounded |
| 128 | extr1022 add 99999.7 0.200000 -> 9.99E+4 Inexact Rounded |
| 129 | rounding: half_even |
| 130 | |
| 131 | -- a bug in _rescale caused the following to fail in Python 2.5.1 |
| 132 | maxexponent: 999 |
| 133 | minexponent: -999 |
| 134 | precision: 6 |
| 135 | extr1100 add 0E+1000 1E+1000 -> Infinity Overflow Inexact Rounded |
| 136 | extr1101 remainder 1E+1000 2E+1000 -> Infinity Overflow Inexact Rounded |
| 137 | |
| 138 | -- tests for scaleb in case where input precision > context precision. |
| 139 | -- Result should be rounded. (This isn't totally clear from the |
| 140 | -- specification, but the treatment of underflow in the testcases |
| 141 | -- suggests that rounding should occur in general. Furthermore, it's |
| 142 | -- the way that the reference implementation behaves.) |
| 143 | maxexponent: 999 |
| 144 | minexponent: -999 |
| 145 | precision: 3 |
| 146 | extr1200 scaleb 1234 1 -> 1.23E+4 Inexact Rounded |
| 147 | extr1201 scaleb 5678 0 -> 5.68E+3 Inexact Rounded |
| 148 | extr1202 scaleb -9105 -1 -> -910 Inexact Rounded |
| 149 | |
| 150 | -- Invalid operation from 0 * infinity in fma |
| 151 | -- takes precedence over a third-argument sNaN |
| 152 | extr1300 fma 0 Inf sNaN123 -> NaN Invalid_operation |
| 153 | extr1301 fma Inf 0 sNaN456 -> NaN Invalid_operation |
| 154 | extr1302 fma 0E123 -Inf sNaN789 -> NaN Invalid_operation |
| 155 | extr1302 fma -Inf 0E-456 sNaN148 -> NaN Invalid_operation |
| 156 | |
| 157 | ------------------------------------------------------------------------ |
| 158 | -- The following tests (pwmx0 through pwmx440) are for the -- |
| 159 | -- three-argument version of power: -- |
| 160 | -- -- |
| 161 | -- pow(x, y, z) := x**y % z -- |
| 162 | -- -- |
| 163 | -- Note that the three-argument version of power is *not* part of -- |
| 164 | -- the IBM General Decimal Arithmetic specification. Questions -- |
| 165 | -- about it, or about these testcases, should go to one of the -- |
| 166 | -- Python decimal authors. -- |
| 167 | ------------------------------------------------------------------------ |
| 168 | |
| 169 | extended: 1 |
| 170 | precision: 9 |
| 171 | rounding: down |
| 172 | maxExponent: 999 |
| 173 | minExponent: -999 |
| 174 | |
| 175 | -- Small numbers |
| 176 | -- Note that power(0, 0, m) is an error for any m |
| 177 | pwmx0 power 0 -0 1 -> NaN Invalid_operation |
| 178 | pwmx1 power 0 -0 2 -> NaN Invalid_operation |
| 179 | pwmx2 power 0 -0 3 -> NaN Invalid_operation |
| 180 | pwmx3 power 0 -0 4 -> NaN Invalid_operation |
| 181 | pwmx4 power 0 -0 -1 -> NaN Invalid_operation |
| 182 | pwmx5 power 0 -0 -2 -> NaN Invalid_operation |
| 183 | pwmx6 power 0 0 1 -> NaN Invalid_operation |
| 184 | pwmx7 power 0 0 2 -> NaN Invalid_operation |
| 185 | pwmx8 power 0 0 3 -> NaN Invalid_operation |
| 186 | pwmx9 power 0 0 4 -> NaN Invalid_operation |
| 187 | pwmx10 power 0 0 -1 -> NaN Invalid_operation |
| 188 | pwmx11 power 0 0 -2 -> NaN Invalid_operation |
| 189 | pwmx12 power 0 1 1 -> 0 |
| 190 | pwmx13 power 0 1 2 -> 0 |
| 191 | pwmx14 power 0 1 3 -> 0 |
| 192 | pwmx15 power 0 1 4 -> 0 |
| 193 | pwmx16 power 0 1 -1 -> 0 |
| 194 | pwmx17 power 0 1 -2 -> 0 |
| 195 | pwmx18 power 0 2 1 -> 0 |
| 196 | pwmx19 power 0 2 2 -> 0 |
| 197 | pwmx20 power 0 2 3 -> 0 |
| 198 | pwmx21 power 0 2 4 -> 0 |
| 199 | pwmx22 power 0 2 -1 -> 0 |
| 200 | pwmx23 power 0 2 -2 -> 0 |
| 201 | pwmx24 power 0 3 1 -> 0 |
| 202 | pwmx25 power 0 3 2 -> 0 |
| 203 | pwmx26 power 0 3 3 -> 0 |
| 204 | pwmx27 power 0 3 4 -> 0 |
| 205 | pwmx28 power 0 3 -1 -> 0 |
| 206 | pwmx29 power 0 3 -2 -> 0 |
| 207 | pwmx30 power 0 4 1 -> 0 |
| 208 | pwmx31 power 0 4 2 -> 0 |
| 209 | pwmx32 power 0 4 3 -> 0 |
| 210 | pwmx33 power 0 4 4 -> 0 |
| 211 | pwmx34 power 0 4 -1 -> 0 |
| 212 | pwmx35 power 0 4 -2 -> 0 |
| 213 | pwmx36 power 0 5 1 -> 0 |
| 214 | pwmx37 power 0 5 2 -> 0 |
| 215 | pwmx38 power 0 5 3 -> 0 |
| 216 | pwmx39 power 0 5 4 -> 0 |
| 217 | pwmx40 power 0 5 -1 -> 0 |
| 218 | pwmx41 power 0 5 -2 -> 0 |
| 219 | pwmx42 power 1 -0 1 -> 0 |
| 220 | pwmx43 power 1 -0 2 -> 1 |
| 221 | pwmx44 power 1 -0 3 -> 1 |
| 222 | pwmx45 power 1 -0 4 -> 1 |
| 223 | pwmx46 power 1 -0 -1 -> 0 |
| 224 | pwmx47 power 1 -0 -2 -> 1 |
| 225 | pwmx48 power 1 0 1 -> 0 |
| 226 | pwmx49 power 1 0 2 -> 1 |
| 227 | pwmx50 power 1 0 3 -> 1 |
| 228 | pwmx51 power 1 0 4 -> 1 |
| 229 | pwmx52 power 1 0 -1 -> 0 |
| 230 | pwmx53 power 1 0 -2 -> 1 |
| 231 | pwmx54 power 1 1 1 -> 0 |
| 232 | pwmx55 power 1 1 2 -> 1 |
| 233 | pwmx56 power 1 1 3 -> 1 |
| 234 | pwmx57 power 1 1 4 -> 1 |
| 235 | pwmx58 power 1 1 -1 -> 0 |
| 236 | pwmx59 power 1 1 -2 -> 1 |
| 237 | pwmx60 power 1 2 1 -> 0 |
| 238 | pwmx61 power 1 2 2 -> 1 |
| 239 | pwmx62 power 1 2 3 -> 1 |
| 240 | pwmx63 power 1 2 4 -> 1 |
| 241 | pwmx64 power 1 2 -1 -> 0 |
| 242 | pwmx65 power 1 2 -2 -> 1 |
| 243 | pwmx66 power 1 3 1 -> 0 |
| 244 | pwmx67 power 1 3 2 -> 1 |
| 245 | pwmx68 power 1 3 3 -> 1 |
| 246 | pwmx69 power 1 3 4 -> 1 |
| 247 | pwmx70 power 1 3 -1 -> 0 |
| 248 | pwmx71 power 1 3 -2 -> 1 |
| 249 | pwmx72 power 1 4 1 -> 0 |
| 250 | pwmx73 power 1 4 2 -> 1 |
| 251 | pwmx74 power 1 4 3 -> 1 |
| 252 | pwmx75 power 1 4 4 -> 1 |
| 253 | pwmx76 power 1 4 -1 -> 0 |
| 254 | pwmx77 power 1 4 -2 -> 1 |
| 255 | pwmx78 power 1 5 1 -> 0 |
| 256 | pwmx79 power 1 5 2 -> 1 |
| 257 | pwmx80 power 1 5 3 -> 1 |
| 258 | pwmx81 power 1 5 4 -> 1 |
| 259 | pwmx82 power 1 5 -1 -> 0 |
| 260 | pwmx83 power 1 5 -2 -> 1 |
| 261 | pwmx84 power 2 -0 1 -> 0 |
| 262 | pwmx85 power 2 -0 2 -> 1 |
| 263 | pwmx86 power 2 -0 3 -> 1 |
| 264 | pwmx87 power 2 -0 4 -> 1 |
| 265 | pwmx88 power 2 -0 -1 -> 0 |
| 266 | pwmx89 power 2 -0 -2 -> 1 |
| 267 | pwmx90 power 2 0 1 -> 0 |
| 268 | pwmx91 power 2 0 2 -> 1 |
| 269 | pwmx92 power 2 0 3 -> 1 |
| 270 | pwmx93 power 2 0 4 -> 1 |
| 271 | pwmx94 power 2 0 -1 -> 0 |
| 272 | pwmx95 power 2 0 -2 -> 1 |
| 273 | pwmx96 power 2 1 1 -> 0 |
| 274 | pwmx97 power 2 1 2 -> 0 |
| 275 | pwmx98 power 2 1 3 -> 2 |
| 276 | pwmx99 power 2 1 4 -> 2 |
| 277 | pwmx100 power 2 1 -1 -> 0 |
| 278 | pwmx101 power 2 1 -2 -> 0 |
| 279 | pwmx102 power 2 2 1 -> 0 |
| 280 | pwmx103 power 2 2 2 -> 0 |
| 281 | pwmx104 power 2 2 3 -> 1 |
| 282 | pwmx105 power 2 2 4 -> 0 |
| 283 | pwmx106 power 2 2 -1 -> 0 |
| 284 | pwmx107 power 2 2 -2 -> 0 |
| 285 | pwmx108 power 2 3 1 -> 0 |
| 286 | pwmx109 power 2 3 2 -> 0 |
| 287 | pwmx110 power 2 3 3 -> 2 |
| 288 | pwmx111 power 2 3 4 -> 0 |
| 289 | pwmx112 power 2 3 -1 -> 0 |
| 290 | pwmx113 power 2 3 -2 -> 0 |
| 291 | pwmx114 power 2 4 1 -> 0 |
| 292 | pwmx115 power 2 4 2 -> 0 |
| 293 | pwmx116 power 2 4 3 -> 1 |
| 294 | pwmx117 power 2 4 4 -> 0 |
| 295 | pwmx118 power 2 4 -1 -> 0 |
| 296 | pwmx119 power 2 4 -2 -> 0 |
| 297 | pwmx120 power 2 5 1 -> 0 |
| 298 | pwmx121 power 2 5 2 -> 0 |
| 299 | pwmx122 power 2 5 3 -> 2 |
| 300 | pwmx123 power 2 5 4 -> 0 |
| 301 | pwmx124 power 2 5 -1 -> 0 |
| 302 | pwmx125 power 2 5 -2 -> 0 |
| 303 | pwmx126 power 3 -0 1 -> 0 |
| 304 | pwmx127 power 3 -0 2 -> 1 |
| 305 | pwmx128 power 3 -0 3 -> 1 |
| 306 | pwmx129 power 3 -0 4 -> 1 |
| 307 | pwmx130 power 3 -0 -1 -> 0 |
| 308 | pwmx131 power 3 -0 -2 -> 1 |
| 309 | pwmx132 power 3 0 1 -> 0 |
| 310 | pwmx133 power 3 0 2 -> 1 |
| 311 | pwmx134 power 3 0 3 -> 1 |
| 312 | pwmx135 power 3 0 4 -> 1 |
| 313 | pwmx136 power 3 0 -1 -> 0 |
| 314 | pwmx137 power 3 0 -2 -> 1 |
| 315 | pwmx138 power 3 1 1 -> 0 |
| 316 | pwmx139 power 3 1 2 -> 1 |
| 317 | pwmx140 power 3 1 3 -> 0 |
| 318 | pwmx141 power 3 1 4 -> 3 |
| 319 | pwmx142 power 3 1 -1 -> 0 |
| 320 | pwmx143 power 3 1 -2 -> 1 |
| 321 | pwmx144 power 3 2 1 -> 0 |
| 322 | pwmx145 power 3 2 2 -> 1 |
| 323 | pwmx146 power 3 2 3 -> 0 |
| 324 | pwmx147 power 3 2 4 -> 1 |
| 325 | pwmx148 power 3 2 -1 -> 0 |
| 326 | pwmx149 power 3 2 -2 -> 1 |
| 327 | pwmx150 power 3 3 1 -> 0 |
| 328 | pwmx151 power 3 3 2 -> 1 |
| 329 | pwmx152 power 3 3 3 -> 0 |
| 330 | pwmx153 power 3 3 4 -> 3 |
| 331 | pwmx154 power 3 3 -1 -> 0 |
| 332 | pwmx155 power 3 3 -2 -> 1 |
| 333 | pwmx156 power 3 4 1 -> 0 |
| 334 | pwmx157 power 3 4 2 -> 1 |
| 335 | pwmx158 power 3 4 3 -> 0 |
| 336 | pwmx159 power 3 4 4 -> 1 |
| 337 | pwmx160 power 3 4 -1 -> 0 |
| 338 | pwmx161 power 3 4 -2 -> 1 |
| 339 | pwmx162 power 3 5 1 -> 0 |
| 340 | pwmx163 power 3 5 2 -> 1 |
| 341 | pwmx164 power 3 5 3 -> 0 |
| 342 | pwmx165 power 3 5 4 -> 3 |
| 343 | pwmx166 power 3 5 -1 -> 0 |
| 344 | pwmx167 power 3 5 -2 -> 1 |
| 345 | pwmx168 power -0 -0 1 -> NaN Invalid_operation |
| 346 | pwmx169 power -0 -0 2 -> NaN Invalid_operation |
| 347 | pwmx170 power -0 -0 3 -> NaN Invalid_operation |
| 348 | pwmx171 power -0 -0 4 -> NaN Invalid_operation |
| 349 | pwmx172 power -0 -0 -1 -> NaN Invalid_operation |
| 350 | pwmx173 power -0 -0 -2 -> NaN Invalid_operation |
| 351 | pwmx174 power -0 0 1 -> NaN Invalid_operation |
| 352 | pwmx175 power -0 0 2 -> NaN Invalid_operation |
| 353 | pwmx176 power -0 0 3 -> NaN Invalid_operation |
| 354 | pwmx177 power -0 0 4 -> NaN Invalid_operation |
| 355 | pwmx178 power -0 0 -1 -> NaN Invalid_operation |
| 356 | pwmx179 power -0 0 -2 -> NaN Invalid_operation |
| 357 | pwmx180 power -0 1 1 -> -0 |
| 358 | pwmx181 power -0 1 2 -> -0 |
| 359 | pwmx182 power -0 1 3 -> -0 |
| 360 | pwmx183 power -0 1 4 -> -0 |
| 361 | pwmx184 power -0 1 -1 -> -0 |
| 362 | pwmx185 power -0 1 -2 -> -0 |
| 363 | pwmx186 power -0 2 1 -> 0 |
| 364 | pwmx187 power -0 2 2 -> 0 |
| 365 | pwmx188 power -0 2 3 -> 0 |
| 366 | pwmx189 power -0 2 4 -> 0 |
| 367 | pwmx190 power -0 2 -1 -> 0 |
| 368 | pwmx191 power -0 2 -2 -> 0 |
| 369 | pwmx192 power -0 3 1 -> -0 |
| 370 | pwmx193 power -0 3 2 -> -0 |
| 371 | pwmx194 power -0 3 3 -> -0 |
| 372 | pwmx195 power -0 3 4 -> -0 |
| 373 | pwmx196 power -0 3 -1 -> -0 |
| 374 | pwmx197 power -0 3 -2 -> -0 |
| 375 | pwmx198 power -0 4 1 -> 0 |
| 376 | pwmx199 power -0 4 2 -> 0 |
| 377 | pwmx200 power -0 4 3 -> 0 |
| 378 | pwmx201 power -0 4 4 -> 0 |
| 379 | pwmx202 power -0 4 -1 -> 0 |
| 380 | pwmx203 power -0 4 -2 -> 0 |
| 381 | pwmx204 power -0 5 1 -> -0 |
| 382 | pwmx205 power -0 5 2 -> -0 |
| 383 | pwmx206 power -0 5 3 -> -0 |
| 384 | pwmx207 power -0 5 4 -> -0 |
| 385 | pwmx208 power -0 5 -1 -> -0 |
| 386 | pwmx209 power -0 5 -2 -> -0 |
| 387 | pwmx210 power -1 -0 1 -> 0 |
| 388 | pwmx211 power -1 -0 2 -> 1 |
| 389 | pwmx212 power -1 -0 3 -> 1 |
| 390 | pwmx213 power -1 -0 4 -> 1 |
| 391 | pwmx214 power -1 -0 -1 -> 0 |
| 392 | pwmx215 power -1 -0 -2 -> 1 |
| 393 | pwmx216 power -1 0 1 -> 0 |
| 394 | pwmx217 power -1 0 2 -> 1 |
| 395 | pwmx218 power -1 0 3 -> 1 |
| 396 | pwmx219 power -1 0 4 -> 1 |
| 397 | pwmx220 power -1 0 -1 -> 0 |
| 398 | pwmx221 power -1 0 -2 -> 1 |
| 399 | pwmx222 power -1 1 1 -> -0 |
| 400 | pwmx223 power -1 1 2 -> -1 |
| 401 | pwmx224 power -1 1 3 -> -1 |
| 402 | pwmx225 power -1 1 4 -> -1 |
| 403 | pwmx226 power -1 1 -1 -> -0 |
| 404 | pwmx227 power -1 1 -2 -> -1 |
| 405 | pwmx228 power -1 2 1 -> 0 |
| 406 | pwmx229 power -1 2 2 -> 1 |
| 407 | pwmx230 power -1 2 3 -> 1 |
| 408 | pwmx231 power -1 2 4 -> 1 |
| 409 | pwmx232 power -1 2 -1 -> 0 |
| 410 | pwmx233 power -1 2 -2 -> 1 |
| 411 | pwmx234 power -1 3 1 -> -0 |
| 412 | pwmx235 power -1 3 2 -> -1 |
| 413 | pwmx236 power -1 3 3 -> -1 |
| 414 | pwmx237 power -1 3 4 -> -1 |
| 415 | pwmx238 power -1 3 -1 -> -0 |
| 416 | pwmx239 power -1 3 -2 -> -1 |
| 417 | pwmx240 power -1 4 1 -> 0 |
| 418 | pwmx241 power -1 4 2 -> 1 |
| 419 | pwmx242 power -1 4 3 -> 1 |
| 420 | pwmx243 power -1 4 4 -> 1 |
| 421 | pwmx244 power -1 4 -1 -> 0 |
| 422 | pwmx245 power -1 4 -2 -> 1 |
| 423 | pwmx246 power -1 5 1 -> -0 |
| 424 | pwmx247 power -1 5 2 -> -1 |
| 425 | pwmx248 power -1 5 3 -> -1 |
| 426 | pwmx249 power -1 5 4 -> -1 |
| 427 | pwmx250 power -1 5 -1 -> -0 |
| 428 | pwmx251 power -1 5 -2 -> -1 |
| 429 | |
| 430 | -- Randomly chosen larger values |
| 431 | pwmx252 power 0 4 7 -> 0 |
| 432 | pwmx253 power -4 5 -9 -> -7 |
| 433 | pwmx254 power -5 4 -9 -> 4 |
| 434 | pwmx255 power -50 29 2 -> -0 |
| 435 | pwmx256 power -1 83 3 -> -1 |
| 436 | pwmx257 power -55 65 -75 -> -25 |
| 437 | pwmx258 power -613 151 -302 -> -9 |
| 438 | pwmx259 power 551 23 -35 -> 31 |
| 439 | pwmx260 power 51 142 942 -> 9 |
| 440 | pwmx261 power 6886 9204 -6091 -> 5034 |
| 441 | pwmx262 power 3057 5890 -3 -> 0 |
| 442 | pwmx263 power 56 4438 5365 -> 521 |
| 443 | pwmx264 power 96237 35669 -46669 -> 30717 |
| 444 | pwmx265 power 40011 34375 -57611 -> 625 |
| 445 | pwmx266 power 44317 38493 -12196 -> 11081 |
| 446 | pwmx267 power -282368 895633 -235870 -> -220928 |
| 447 | pwmx268 power 77328 852553 -405529 -> 129173 |
| 448 | pwmx269 power -929659 855713 650348 -> -90803 |
| 449 | pwmx270 power 907057 6574309 4924768 -> 3018257 |
| 450 | pwmx271 power -2887757 3198492 -5864352 -> 3440113 |
| 451 | pwmx272 power -247310 657371 -7415739 -> -1301840 |
| 452 | pwmx273 power -8399046 45334087 -22395020 -> -18515896 |
| 453 | pwmx274 power 79621397 4850236 1486555 -> 928706 |
| 454 | pwmx275 power 96012251 27971901 69609031 -> 50028729 |
| 455 | pwmx276 power -907335481 74127986 582330017 -> 51527187 |
| 456 | pwmx277 power -141192960 821063826 -260877928 -> 112318560 |
| 457 | pwmx278 power -501711702 934355994 82135143 -> 66586995 |
| 458 | pwmx279 power -9256358075 8900900138 -467222031 -> 95800246 |
| 459 | pwmx280 power -7031964291 1751257483 -935334498 -> -607626609 |
| 460 | pwmx281 power 8494314971 8740197252 107522491 -> 17373655 |
| 461 | pwmx282 power 88306216890 87477374166 -23498076 -> 15129528 |
| 462 | pwmx283 power -33939432478 7170196239 22133583 -> -11017036 |
| 463 | pwmx284 power 19466222767 30410710614 305752056 -> 191509537 |
| 464 | pwmx285 power -864942494008 370558899638 346688856 -> 56956768 |
| 465 | pwmx286 power -525406225603 345700226898 237163621 -> 56789534 |
| 466 | pwmx287 power 464612215955 312474621651 -329485700 -> 1853975 |
| 467 | pwmx288 power -1664283031244 3774474669855 919022867 -> -516034520 |
| 468 | pwmx289 power -3472438506913 7407327549995 -451206854 -> -74594761 |
| 469 | pwmx290 power -4223662152949 6891069279069 499843503 -> -80135290 |
| 470 | pwmx291 power -44022119276816 8168266170326 569679509 -> 375734475 |
| 471 | pwmx292 power -66195891207902 12532690555875 -243262129 -> -113186833 |
| 472 | pwmx293 power -69039911263164 52726605857673 360625196 -> -268662748 |
| 473 | pwmx294 power -299010116699208 885092589359231 -731310123 -> -104103765 |
| 474 | pwmx295 power -202495776299758 501159122943145 -686234870 -> -135511878 |
| 475 | pwmx296 power -595411478087676 836269270472481 -214614901 -> -183440819 |
| 476 | pwmx297 power -139555381056229 1324808520020507 -228944738 -> -218991473 |
| 477 | pwmx298 power 7846356250770543 1798045051036814 -101028985 -> 7805179 |
| 478 | pwmx299 power -4298015862709415 604966944844209 880212893 -> -87408671 |
| 479 | pwmx300 power -37384897538910893 76022206995659295 -930512842 -> -697757157 |
| 480 | pwmx301 power 82166659028005443 23375408251767704 817270700 -> 770697001 |
| 481 | pwmx302 power 97420301198165641 72213282983416924 947519716 -> 610711721 |
| 482 | pwmx303 power 913382043453243607 449681707248500262 211135545 -> 79544899 |
| 483 | pwmx304 power -313823613418052171 534579409610142937 -943062968 -> -446001379 |
| 484 | pwmx305 power -928106516894494093 760020177330116509 -50043994 -> -46010575 |
| 485 | pwmx306 power 4692146601679439796 4565354511806767804 -667339075 -> 480272081 |
| 486 | pwmx307 power 9722256633509177930 7276568791860505790 792675321 -> 182879752 |
| 487 | pwmx308 power 8689899484830064228 429082967129615261 -844555637 -> 270374557 |
| 488 | |
| 489 | -- All inputs must be integers |
| 490 | pwmx309 power 2.1 3 1 -> NaN Invalid_operation |
| 491 | pwmx310 power 0.4 1 5 -> NaN Invalid_operation |
| 492 | pwmx311 power 2 3.1 5 -> NaN Invalid_operation |
| 493 | pwmx312 power 13 -1.2 10 -> NaN Invalid_operation |
| 494 | pwmx313 power 2 3 5.1 -> NaN Invalid_operation |
| 495 | |
| 496 | -- Second argument must be nonnegative (-0 is okay) |
| 497 | pwmx314 power 2 -3 5 -> NaN Invalid_operation |
| 498 | pwmx315 power 7 -1 1 -> NaN Invalid_operation |
| 499 | pwmx316 power 0 -2 6 -> NaN Invalid_operation |
| 500 | |
| 501 | -- Third argument must be nonzero |
| 502 | pwmx317 power 13 1003 0 -> NaN Invalid_operation |
| 503 | pwmx318 power 1 0 0E+987 -> NaN Invalid_operation |
| 504 | pwmx319 power 0 2 -0 -> NaN Invalid_operation |
| 505 | |
| 506 | -- Integers are fine, no matter how they're expressed |
| 507 | pwmx320 power 13.0 117.00 1E+2 -> 33 |
| 508 | pwmx321 power -2E+3 1.1E+10 -12323 -> 4811 |
| 509 | pwmx322 power 20 0E-300 143 -> 1 |
| 510 | pwmx323 power -20 -0E+1005 1179 -> 1 |
| 511 | pwmx324 power 0E-1001 17 5.6E+4 -> 0 |
| 512 | |
| 513 | -- Modulus must not exceed precision |
| 514 | pwmx325 power 0 1 1234567890 -> NaN Invalid_operation |
| 515 | pwmx326 power 1 0 1000000000 -> NaN Invalid_operation |
| 516 | pwmx327 power -23 5 -1000000000 -> NaN Invalid_operation |
| 517 | pwmx328 power 41557 213 -999999999 -> 47650456 |
| 518 | pwmx329 power -2134 199 999999997 -> -946957912 |
| 519 | |
| 520 | -- Huge base shouldn't present any problems |
| 521 | pwmx330 power 1.23E+123456791 10123898 17291065 -> 5674045 |
| 522 | |
| 523 | -- Large exponent, may be slow |
| 524 | -- (if second argument is 1En then expect O(n) running time) |
| 525 | pwmx331 power 1000288896 9.87E+12347 93379908 -> 43224924 |
| 526 | |
| 527 | -- Triple NaN propagation (adapted from examples in fma.decTest) |
| 528 | pwmx400 power NaN2 NaN3 NaN5 -> NaN2 |
| 529 | pwmx401 power 1 NaN3 NaN5 -> NaN3 |
| 530 | pwmx402 power 1 1 NaN5 -> NaN5 |
| 531 | pwmx403 power sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation |
| 532 | pwmx404 power 1 sNaN2 sNaN3 -> NaN2 Invalid_operation |
| 533 | pwmx405 power 1 1 sNaN3 -> NaN3 Invalid_operation |
| 534 | pwmx406 power sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation |
| 535 | pwmx407 power NaN7 sNaN2 sNaN3 -> NaN2 Invalid_operation |
| 536 | pwmx408 power NaN7 NaN5 sNaN3 -> NaN3 Invalid_operation |
| 537 | |
| 538 | -- Infinities not allowed |
| 539 | pwmx410 power Inf 1 1 -> NaN Invalid_operation |
| 540 | pwmx411 power 1 Inf 1 -> NaN Invalid_operation |
| 541 | pwmx412 power 1 1 Inf -> NaN Invalid_operation |
| 542 | pwmx413 power -Inf 1 1 -> NaN Invalid_operation |
| 543 | pwmx414 power 1 -Inf 1 -> NaN Invalid_operation |
| 544 | pwmx415 power 1 1 -Inf -> NaN Invalid_operation |
| 545 | |
| 546 | -- Just for fun: 1729 is a Carmichael number |
| 547 | pwmx420 power 0 1728 1729 -> 0 |
| 548 | pwmx421 power 1 1728 1729 -> 1 |
| 549 | pwmx422 power 2 1728 1729 -> 1 |
| 550 | pwmx423 power 3 1728 1729 -> 1 |
| 551 | pwmx424 power 4 1728 1729 -> 1 |
| 552 | pwmx425 power 5 1728 1729 -> 1 |
| 553 | pwmx426 power 6 1728 1729 -> 1 |
| 554 | pwmx427 power 7 1728 1729 -> 742 |
| 555 | pwmx428 power 8 1728 1729 -> 1 |
| 556 | pwmx429 power 9 1728 1729 -> 1 |
| 557 | pwmx430 power 10 1728 1729 -> 1 |
| 558 | pwmx431 power 11 1728 1729 -> 1 |
| 559 | pwmx432 power 12 1728 1729 -> 1 |
| 560 | pwmx433 power 13 1728 1729 -> 533 |
| 561 | pwmx434 power 14 1728 1729 -> 742 |
| 562 | pwmx435 power 15 1728 1729 -> 1 |
| 563 | pwmx436 power 16 1728 1729 -> 1 |
| 564 | pwmx437 power 17 1728 1729 -> 1 |
| 565 | pwmx438 power 18 1728 1729 -> 1 |
| 566 | pwmx439 power 19 1728 1729 -> 456 |
| 567 | pwmx440 power 20 1728 1729 -> 1 |