summaryrefslogtreecommitdiff
path: root/Lib/test/decimaltestdata/extra.decTest
blob: 36f2a9727f810cd596f9ce85f6dcb40c3072e353 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
version: ?.??

extended: 1
rounding: half_even

-- testing folddown and clamping
maxexponent: 9
minexponent: -9
precision: 6
clamp: 1
extr0000 apply 1E+11 -> Infinity Overflow Inexact Rounded
extr0001 apply 1E+10 -> Infinity Overflow Inexact Rounded
extr0002 apply 1E+9 -> 1.00000E+9 Clamped
extr0003 apply 1E+8 -> 1.0000E+8 Clamped
extr0004 apply 1E+7 -> 1.000E+7 Clamped
extr0005 apply 1E+6 -> 1.00E+6 Clamped
extr0006 apply 1E+5 -> 1.0E+5 Clamped
extr0007 apply 1E+4 -> 1E+4
extr0008 apply 1E+3 -> 1E+3
extr0009 apply 1E+2 -> 1E+2
extr0010 apply 1E+1 -> 1E+1
extr0011 apply 1 -> 1
extr0012 apply 1E-1 -> 0.1
extr0013 apply 1E-2 -> 0.01
extr0014 apply 1E-3 -> 0.001
extr0015 apply 1E-4 -> 0.0001
extr0016 apply 1E-5 -> 0.00001
extr0017 apply 1E-6 -> 0.000001
extr0018 apply 1E-7 -> 1E-7
extr0019 apply 1E-8 -> 1E-8
extr0020 apply 1E-9 -> 1E-9
extr0021 apply 1E-10 -> 1E-10 Subnormal
extr0022 apply 1E-11 -> 1E-11 Subnormal
extr0023 apply 1E-12 -> 1E-12 Subnormal
extr0024 apply 1E-13 -> 1E-13 Subnormal
extr0025 apply 1E-14 -> 1E-14 Subnormal
extr0026 apply 1E-15 -> 0E-14 Inexact Rounded Subnormal Underflow Clamped
extr0027 apply 1E-16 -> 0E-14 Inexact Rounded Subnormal Underflow Clamped
clamp: 0

-- large precision, small minimum and maximum exponent; in this case
-- it's possible that folddown is required on a subnormal result
maxexponent: 9
minexponent: -9
precision: 24
clamp: 1
extr0100 apply 1E+11 -> Infinity Overflow Inexact Rounded
extr0101 apply 1E+10 -> Infinity Overflow Inexact Rounded
extr0102 apply 1E+9 -> 1000000000.00000000000000 Clamped
extr0103 apply 1E+8 -> 100000000.00000000000000 Clamped
extr0104 apply 1E+7 -> 10000000.00000000000000 Clamped
extr0105 apply 1E+6 -> 1000000.00000000000000 Clamped
extr0106 apply 1E+5 -> 100000.00000000000000 Clamped
extr0107 apply 1E+4 -> 10000.00000000000000 Clamped
extr0108 apply 1E+3 -> 1000.00000000000000 Clamped
extr0109 apply 1E+2 -> 100.00000000000000 Clamped
extr0110 apply 1E+1 -> 10.00000000000000 Clamped
extr0111 apply 1 ->    1.00000000000000 Clamped
extr0112 apply 1E-1 -> 0.10000000000000 Clamped
extr0113 apply 1E-2 -> 0.01000000000000 Clamped
extr0114 apply 1E-3 -> 0.00100000000000 Clamped
extr0115 apply 1E-4 -> 0.00010000000000 Clamped
extr0116 apply 1E-5 -> 0.00001000000000 Clamped
extr0117 apply 1E-6 -> 0.00000100000000 Clamped
extr0118 apply 1E-7 -> 1.0000000E-7 Clamped
extr0119 apply 1E-8 -> 1.000000E-8 Clamped
extr0120 apply 1E-9 -> 1.00000E-9 Clamped
extr0121 apply 1E-10 -> 1.0000E-10 Subnormal Clamped
extr0122 apply 1E-11 -> 1.000E-11 Subnormal Clamped
extr0123 apply 1E-12 -> 1.00E-12 Subnormal Clamped
extr0124 apply 1E-13 -> 1.0E-13 Subnormal Clamped
extr0125 apply 1E-14 -> 1E-14 Subnormal
extr0126 apply 1E-15 -> 1E-15 Subnormal
extr0127 apply 1E-16 -> 1E-16 Subnormal
extr0128 apply 1E-17 -> 1E-17 Subnormal
extr0129 apply 1E-18 -> 1E-18 Subnormal
extr0130 apply 1E-19 -> 1E-19 Subnormal
extr0131 apply 1E-20 -> 1E-20 Subnormal
extr0132 apply 1E-21 -> 1E-21 Subnormal
extr0133 apply 1E-22 -> 1E-22 Subnormal
extr0134 apply 1E-23 -> 1E-23 Subnormal
extr0135 apply 1E-24 -> 1E-24 Subnormal
extr0136 apply 1E-25 -> 1E-25 Subnormal
extr0137 apply 1E-26 -> 1E-26 Subnormal
extr0138 apply 1E-27 -> 1E-27 Subnormal
extr0139 apply 1E-28 -> 1E-28 Subnormal
extr0140 apply 1E-29 -> 1E-29 Subnormal
extr0141 apply 1E-30 -> 1E-30 Subnormal
extr0142 apply 1E-31 -> 1E-31 Subnormal
extr0143 apply 1E-32 -> 1E-32 Subnormal
extr0144 apply 1E-33 -> 0E-32 Inexact Rounded Subnormal Underflow Clamped
extr0145 apply 1E-34 -> 0E-32 Inexact Rounded Subnormal Underflow Clamped
clamp: 0

-- some buggy addition cases from Python 2.5.x
maxexponent: 999
minexponent: -999
precision: 6
extr1000 add 0E+1000 0E+2000 -> 0E+999 Clamped
extr1001 add 0E+1004 0E+1001 -> 0E+999 Clamped
clamp: 1
extr1002 add 0E+1000 0E+1000 -> 0E+994 Clamped
clamp: 0
extr1003 add 0E+1000 0E-1005 -> 0E-1004 Clamped
extr1004 add 0E-1006 0 -> 0E-1004 Clamped
extr1005 add 1E+1000 -1E+1000 -> 0E+999 Clamped
extr1006 add -3.1E+1004 3.1E+1004 -> 0E+999 Clamped
clamp: 1
extr1007 add 1E+998 -1E+998 -> 0E+994 Clamped
clamp: 0
extr1008 add 2E-1005 -2E-1005 -> 0E-1004 Clamped
extr1009 add -3.1E-1005 3.1E-1005 -> 0E-1004 Clamped

precision: 3
extr1010 add 99949.9 0.200000 -> 1.00E+5 Inexact Rounded
extr1011 add 99949.9 0.100000 -> 1.00E+5 Inexact Rounded
extr1012 add 99849.9 0.200000 -> 9.99E+4 Inexact Rounded
extr1013 add 99849.9 0.100000 -> 9.98E+4 Inexact Rounded
extr1014 add 1.0149 0.00011 -> 1.02 Inexact Rounded
extr1015 add 1.0149 0.00010 -> 1.02 Inexact Rounded
extr1016 add 1.0149 0.00009 -> 1.01 Inexact Rounded
extr1017 add 1.0049 0.00011 -> 1.01 Inexact Rounded
extr1018 add 1.0049 0.00010 -> 1.00 Inexact Rounded
extr1019 add 1.0049 0.00009 -> 1.00 Inexact Rounded
rounding: down
extr1020 add 99999.9 0.200000 -> 1.00E+5 Inexact Rounded
extr1021 add 99999.8 0.200000 -> 1.00E+5 Rounded
extr1022 add 99999.7 0.200000 -> 9.99E+4 Inexact Rounded
rounding: half_even

-- a bug in _rescale caused the following to fail in Python 2.5.1
maxexponent: 999
minexponent: -999
precision: 6
extr1100 add 0E+1000 1E+1000 -> Infinity Overflow Inexact Rounded
extr1101 remainder 1E+1000 2E+1000 -> Infinity Overflow Inexact Rounded

-- tests for scaleb in case where input precision > context precision.
-- Result should be rounded.  (This isn't totally clear from the
-- specification, but the treatment of underflow in the testcases
-- suggests that rounding should occur in general.  Furthermore, it's
-- the way that the reference implementation behaves.)
maxexponent: 999
minexponent: -999
precision: 3
extr1200 scaleb 1234 1 -> 1.23E+4 Inexact Rounded
extr1201 scaleb 5678 0 -> 5.68E+3 Inexact Rounded
extr1202 scaleb -9105 -1 -> -910 Inexact Rounded

-- Invalid operation from 0 * infinity in fma
-- takes precedence over a third-argument sNaN
extr1300 fma 0 Inf sNaN123 -> NaN Invalid_operation
extr1301 fma Inf 0 sNaN456 -> NaN Invalid_operation
extr1302 fma 0E123 -Inf sNaN789 -> NaN Invalid_operation
extr1302 fma -Inf 0E-456 sNaN148 -> NaN Invalid_operation

------------------------------------------------------------------------
-- The following tests (pwmx0 through pwmx440) are for the            --
-- three-argument version of power:                                   --
--                                                                    --
--   pow(x, y, z) := x**y % z                                         --
--                                                                    --
-- Note that the three-argument version of power is *not* part of     --
-- the IBM General Decimal Arithmetic specification.  Questions       --
-- about it, or about these testcases, should go to one of the        --
-- Python decimal authors.                                            --
------------------------------------------------------------------------

extended: 1
precision: 9
rounding: down
maxExponent: 999
minExponent: -999

-- Small numbers
-- Note that power(0, 0, m) is an error for any m
pwmx0 power 0 -0 1 -> NaN Invalid_operation
pwmx1 power 0 -0 2 -> NaN Invalid_operation
pwmx2 power 0 -0 3 -> NaN Invalid_operation
pwmx3 power 0 -0 4 -> NaN Invalid_operation
pwmx4 power 0 -0 -1 -> NaN Invalid_operation
pwmx5 power 0 -0 -2 -> NaN Invalid_operation
pwmx6 power 0 0 1 -> NaN Invalid_operation
pwmx7 power 0 0 2 -> NaN Invalid_operation
pwmx8 power 0 0 3 -> NaN Invalid_operation
pwmx9 power 0 0 4 -> NaN Invalid_operation
pwmx10 power 0 0 -1 -> NaN Invalid_operation
pwmx11 power 0 0 -2 -> NaN Invalid_operation
pwmx12 power 0 1 1 -> 0
pwmx13 power 0 1 2 -> 0
pwmx14 power 0 1 3 -> 0
pwmx15 power 0 1 4 -> 0
pwmx16 power 0 1 -1 -> 0
pwmx17 power 0 1 -2 -> 0
pwmx18 power 0 2 1 -> 0
pwmx19 power 0 2 2 -> 0
pwmx20 power 0 2 3 -> 0
pwmx21 power 0 2 4 -> 0
pwmx22 power 0 2 -1 -> 0
pwmx23 power 0 2 -2 -> 0
pwmx24 power 0 3 1 -> 0
pwmx25 power 0 3 2 -> 0
pwmx26 power 0 3 3 -> 0
pwmx27 power 0 3 4 -> 0
pwmx28 power 0 3 -1 -> 0
pwmx29 power 0 3 -2 -> 0
pwmx30 power 0 4 1 -> 0
pwmx31 power 0 4 2 -> 0
pwmx32 power 0 4 3 -> 0
pwmx33 power 0 4 4 -> 0
pwmx34 power 0 4 -1 -> 0
pwmx35 power 0 4 -2 -> 0
pwmx36 power 0 5 1 -> 0
pwmx37 power 0 5 2 -> 0
pwmx38 power 0 5 3 -> 0
pwmx39 power 0 5 4 -> 0
pwmx40 power 0 5 -1 -> 0
pwmx41 power 0 5 -2 -> 0
pwmx42 power 1 -0 1 -> 0
pwmx43 power 1 -0 2 -> 1
pwmx44 power 1 -0 3 -> 1
pwmx45 power 1 -0 4 -> 1
pwmx46 power 1 -0 -1 -> 0
pwmx47 power 1 -0 -2 -> 1
pwmx48 power 1 0 1 -> 0
pwmx49 power 1 0 2 -> 1
pwmx50 power 1 0 3 -> 1
pwmx51 power 1 0 4 -> 1
pwmx52 power 1 0 -1 -> 0
pwmx53 power 1 0 -2 -> 1
pwmx54 power 1 1 1 -> 0
pwmx55 power 1 1 2 -> 1
pwmx56 power 1 1 3 -> 1
pwmx57 power 1 1 4 -> 1
pwmx58 power 1 1 -1 -> 0
pwmx59 power 1 1 -2 -> 1
pwmx60 power 1 2 1 -> 0
pwmx61 power 1 2 2 -> 1
pwmx62 power 1 2 3 -> 1
pwmx63 power 1 2 4 -> 1
pwmx64 power 1 2 -1 -> 0
pwmx65 power 1 2 -2 -> 1
pwmx66 power 1 3 1 -> 0
pwmx67 power 1 3 2 -> 1
pwmx68 power 1 3 3 -> 1
pwmx69 power 1 3 4 -> 1
pwmx70 power 1 3 -1 -> 0
pwmx71 power 1 3 -2 -> 1
pwmx72 power 1 4 1 -> 0
pwmx73 power 1 4 2 -> 1
pwmx74 power 1 4 3 -> 1
pwmx75 power 1 4 4 -> 1
pwmx76 power 1 4 -1 -> 0
pwmx77 power 1 4 -2 -> 1
pwmx78 power 1 5 1 -> 0
pwmx79 power 1 5 2 -> 1
pwmx80 power 1 5 3 -> 1
pwmx81 power 1 5 4 -> 1
pwmx82 power 1 5 -1 -> 0
pwmx83 power 1 5 -2 -> 1
pwmx84 power 2 -0 1 -> 0
pwmx85 power 2 -0 2 -> 1
pwmx86 power 2 -0 3 -> 1
pwmx87 power 2 -0 4 -> 1
pwmx88 power 2 -0 -1 -> 0
pwmx89 power 2 -0 -2 -> 1
pwmx90 power 2 0 1 -> 0
pwmx91 power 2 0 2 -> 1
pwmx92 power 2 0 3 -> 1
pwmx93 power 2 0 4 -> 1
pwmx94 power 2 0 -1 -> 0
pwmx95 power 2 0 -2 -> 1
pwmx96 power 2 1 1 -> 0
pwmx97 power 2 1 2 -> 0
pwmx98 power 2 1 3 -> 2
pwmx99 power 2 1 4 -> 2
pwmx100 power 2 1 -1 -> 0
pwmx101 power 2 1 -2 -> 0
pwmx102 power 2 2 1 -> 0
pwmx103 power 2 2 2 -> 0
pwmx104 power 2 2 3 -> 1
pwmx105 power 2 2 4 -> 0
pwmx106 power 2 2 -1 -> 0
pwmx107 power 2 2 -2 -> 0
pwmx108 power 2 3 1 -> 0
pwmx109 power 2 3 2 -> 0
pwmx110 power 2 3 3 -> 2
pwmx111 power 2 3 4 -> 0
pwmx112 power 2 3 -1 -> 0
pwmx113 power 2 3 -2 -> 0
pwmx114 power 2 4 1 -> 0
pwmx115 power 2 4 2 -> 0
pwmx116 power 2 4 3 -> 1
pwmx117 power 2 4 4 -> 0
pwmx118 power 2 4 -1 -> 0
pwmx119 power 2 4 -2 -> 0
pwmx120 power 2 5 1 -> 0
pwmx121 power 2 5 2 -> 0
pwmx122 power 2 5 3 -> 2
pwmx123 power 2 5 4 -> 0
pwmx124 power 2 5 -1 -> 0
pwmx125 power 2 5 -2 -> 0
pwmx126 power 3 -0 1 -> 0
pwmx127 power 3 -0 2 -> 1
pwmx128 power 3 -0 3 -> 1
pwmx129 power 3 -0 4 -> 1
pwmx130 power 3 -0 -1 -> 0
pwmx131 power 3 -0 -2 -> 1
pwmx132 power 3 0 1 -> 0
pwmx133 power 3 0 2 -> 1
pwmx134 power 3 0 3 -> 1
pwmx135 power 3 0 4 -> 1
pwmx136 power 3 0 -1 -> 0
pwmx137 power 3 0 -2 -> 1
pwmx138 power 3 1 1 -> 0
pwmx139 power 3 1 2 -> 1
pwmx140 power 3 1 3 -> 0
pwmx141 power 3 1 4 -> 3
pwmx142 power 3 1 -1 -> 0
pwmx143 power 3 1 -2 -> 1
pwmx144 power 3 2 1 -> 0
pwmx145 power 3 2 2 -> 1
pwmx146 power 3 2 3 -> 0
pwmx147 power 3 2 4 -> 1
pwmx148 power 3 2 -1 -> 0
pwmx149 power 3 2 -2 -> 1
pwmx150 power 3 3 1 -> 0
pwmx151 power 3 3 2 -> 1
pwmx152 power 3 3 3 -> 0
pwmx153 power 3 3 4 -> 3
pwmx154 power 3 3 -1 -> 0
pwmx155 power 3 3 -2 -> 1
pwmx156 power 3 4 1 -> 0
pwmx157 power 3 4 2 -> 1
pwmx158 power 3 4 3 -> 0
pwmx159 power 3 4 4 -> 1
pwmx160 power 3 4 -1 -> 0
pwmx161 power 3 4 -2 -> 1
pwmx162 power 3 5 1 -> 0
pwmx163 power 3 5 2 -> 1
pwmx164 power 3 5 3 -> 0
pwmx165 power 3 5 4 -> 3
pwmx166 power 3 5 -1 -> 0
pwmx167 power 3 5 -2 -> 1
pwmx168 power -0 -0 1 -> NaN Invalid_operation
pwmx169 power -0 -0 2 -> NaN Invalid_operation
pwmx170 power -0 -0 3 -> NaN Invalid_operation
pwmx171 power -0 -0 4 -> NaN Invalid_operation
pwmx172 power -0 -0 -1 -> NaN Invalid_operation
pwmx173 power -0 -0 -2 -> NaN Invalid_operation
pwmx174 power -0 0 1 -> NaN Invalid_operation
pwmx175 power -0 0 2 -> NaN Invalid_operation
pwmx176 power -0 0 3 -> NaN Invalid_operation
pwmx177 power -0 0 4 -> NaN Invalid_operation
pwmx178 power -0 0 -1 -> NaN Invalid_operation
pwmx179 power -0 0 -2 -> NaN Invalid_operation
pwmx180 power -0 1 1 -> -0
pwmx181 power -0 1 2 -> -0
pwmx182 power -0 1 3 -> -0
pwmx183 power -0 1 4 -> -0
pwmx184 power -0 1 -1 -> -0
pwmx185 power -0 1 -2 -> -0
pwmx186 power -0 2 1 -> 0
pwmx187 power -0 2 2 -> 0
pwmx188 power -0 2 3 -> 0
pwmx189 power -0 2 4 -> 0
pwmx190 power -0 2 -1 -> 0
pwmx191 power -0 2 -2 -> 0
pwmx192 power -0 3 1 -> -0
pwmx193 power -0 3 2 -> -0
pwmx194 power -0 3 3 -> -0
pwmx195 power -0 3 4 -> -0
pwmx196 power -0 3 -1 -> -0
pwmx197 power -0 3 -2 -> -0
pwmx198 power -0 4 1 -> 0
pwmx199 power -0 4 2 -> 0
pwmx200 power -0 4 3 -> 0
pwmx201 power -0 4 4 -> 0
pwmx202 power -0 4 -1 -> 0
pwmx203 power -0 4 -2 -> 0
pwmx204 power -0 5 1 -> -0
pwmx205 power -0 5 2 -> -0
pwmx206 power -0 5 3 -> -0
pwmx207 power -0 5 4 -> -0
pwmx208 power -0 5 -1 -> -0
pwmx209 power -0 5 -2 -> -0
pwmx210 power -1 -0 1 -> 0
pwmx211 power -1 -0 2 -> 1
pwmx212 power -1 -0 3 -> 1
pwmx213 power -1 -0 4 -> 1
pwmx214 power -1 -0 -1 -> 0
pwmx215 power -1 -0 -2 -> 1
pwmx216 power -1 0 1 -> 0
pwmx217 power -1 0 2 -> 1
pwmx218 power -1 0 3 -> 1
pwmx219 power -1 0 4 -> 1
pwmx220 power -1 0 -1 -> 0
pwmx221 power -1 0 -2 -> 1
pwmx222 power -1 1 1 -> -0
pwmx223 power -1 1 2 -> -1
pwmx224 power -1 1 3 -> -1
pwmx225 power -1 1 4 -> -1
pwmx226 power -1 1 -1 -> -0
pwmx227 power -1 1 -2 -> -1
pwmx228 power -1 2 1 -> 0
pwmx229 power -1 2 2 -> 1
pwmx230 power -1 2 3 -> 1
pwmx231 power -1 2 4 -> 1
pwmx232 power -1 2 -1 -> 0
pwmx233 power -1 2 -2 -> 1
pwmx234 power -1 3 1 -> -0
pwmx235 power -1 3 2 -> -1
pwmx236 power -1 3 3 -> -1
pwmx237 power -1 3 4 -> -1
pwmx238 power -1 3 -1 -> -0
pwmx239 power -1 3 -2 -> -1
pwmx240 power -1 4 1 -> 0
pwmx241 power -1 4 2 -> 1
pwmx242 power -1 4 3 -> 1
pwmx243 power -1 4 4 -> 1
pwmx244 power -1 4 -1 -> 0
pwmx245 power -1 4 -2 -> 1
pwmx246 power -1 5 1 -> -0
pwmx247 power -1 5 2 -> -1
pwmx248 power -1 5 3 -> -1
pwmx249 power -1 5 4 -> -1
pwmx250 power -1 5 -1 -> -0
pwmx251 power -1 5 -2 -> -1

-- Randomly chosen larger values
pwmx252 power 0 4 7 -> 0
pwmx253 power -4 5 -9 -> -7
pwmx254 power -5 4 -9 -> 4
pwmx255 power -50 29 2 -> -0
pwmx256 power -1 83 3 -> -1
pwmx257 power -55 65 -75 -> -25
pwmx258 power -613 151 -302 -> -9
pwmx259 power 551 23 -35 -> 31
pwmx260 power 51 142 942 -> 9
pwmx261 power 6886 9204 -6091 -> 5034
pwmx262 power 3057 5890 -3 -> 0
pwmx263 power 56 4438 5365 -> 521
pwmx264 power 96237 35669 -46669 -> 30717
pwmx265 power 40011 34375 -57611 -> 625
pwmx266 power 44317 38493 -12196 -> 11081
pwmx267 power -282368 895633 -235870 -> -220928
pwmx268 power 77328 852553 -405529 -> 129173
pwmx269 power -929659 855713 650348 -> -90803
pwmx270 power 907057 6574309 4924768 -> 3018257
pwmx271 power -2887757 3198492 -5864352 -> 3440113
pwmx272 power -247310 657371 -7415739 -> -1301840
pwmx273 power -8399046 45334087 -22395020 -> -18515896
pwmx274 power 79621397 4850236 1486555 -> 928706
pwmx275 power 96012251 27971901 69609031 -> 50028729
pwmx276 power -907335481 74127986 582330017 -> 51527187
pwmx277 power -141192960 821063826 -260877928 -> 112318560
pwmx278 power -501711702 934355994 82135143 -> 66586995
pwmx279 power -9256358075 8900900138 -467222031 -> 95800246
pwmx280 power -7031964291 1751257483 -935334498 -> -607626609
pwmx281 power 8494314971 8740197252 107522491 -> 17373655
pwmx282 power 88306216890 87477374166 -23498076 -> 15129528
pwmx283 power -33939432478 7170196239 22133583 -> -11017036
pwmx284 power 19466222767 30410710614 305752056 -> 191509537
pwmx285 power -864942494008 370558899638 346688856 -> 56956768
pwmx286 power -525406225603 345700226898 237163621 -> 56789534
pwmx287 power 464612215955 312474621651 -329485700 -> 1853975
pwmx288 power -1664283031244 3774474669855 919022867 -> -516034520
pwmx289 power -3472438506913 7407327549995 -451206854 -> -74594761
pwmx290 power -4223662152949 6891069279069 499843503 -> -80135290
pwmx291 power -44022119276816 8168266170326 569679509 -> 375734475
pwmx292 power -66195891207902 12532690555875 -243262129 -> -113186833
pwmx293 power -69039911263164 52726605857673 360625196 -> -268662748
pwmx294 power -299010116699208 885092589359231 -731310123 -> -104103765
pwmx295 power -202495776299758 501159122943145 -686234870 -> -135511878
pwmx296 power -595411478087676 836269270472481 -214614901 -> -183440819
pwmx297 power -139555381056229 1324808520020507 -228944738 -> -218991473
pwmx298 power 7846356250770543 1798045051036814 -101028985 -> 7805179
pwmx299 power -4298015862709415 604966944844209 880212893 -> -87408671
pwmx300 power -37384897538910893 76022206995659295 -930512842 -> -697757157
pwmx301 power 82166659028005443 23375408251767704 817270700 -> 770697001
pwmx302 power 97420301198165641 72213282983416924 947519716 -> 610711721
pwmx303 power 913382043453243607 449681707248500262 211135545 -> 79544899
pwmx304 power -313823613418052171 534579409610142937 -943062968 -> -446001379
pwmx305 power -928106516894494093 760020177330116509 -50043994 -> -46010575
pwmx306 power 4692146601679439796 4565354511806767804 -667339075 -> 480272081
pwmx307 power 9722256633509177930 7276568791860505790 792675321 -> 182879752
pwmx308 power 8689899484830064228 429082967129615261 -844555637 -> 270374557

-- All inputs must be integers
pwmx309 power 2.1 3 1 -> NaN Invalid_operation
pwmx310 power 0.4 1 5 -> NaN Invalid_operation
pwmx311 power 2 3.1 5 -> NaN Invalid_operation
pwmx312 power 13 -1.2 10 -> NaN Invalid_operation
pwmx313 power 2 3 5.1 -> NaN Invalid_operation

-- Second argument must be nonnegative (-0 is okay)
pwmx314 power 2 -3 5 -> NaN Invalid_operation
pwmx315 power 7 -1 1 -> NaN Invalid_operation
pwmx316 power 0 -2 6 -> NaN Invalid_operation

-- Third argument must be nonzero
pwmx317 power 13 1003 0 -> NaN Invalid_operation
pwmx318 power 1 0 0E+987 -> NaN Invalid_operation
pwmx319 power 0 2 -0 -> NaN Invalid_operation

-- Integers are fine, no matter how they're expressed
pwmx320 power 13.0 117.00 1E+2 -> 33
pwmx321 power -2E+3 1.1E+10 -12323 -> 4811
pwmx322 power 20 0E-300 143 -> 1
pwmx323 power -20 -0E+1005 1179 -> 1
pwmx324 power 0E-1001 17 5.6E+4 -> 0

-- Modulus must not exceed precision
pwmx325 power 0 1 1234567890 -> NaN Invalid_operation
pwmx326 power 1 0 1000000000 -> NaN Invalid_operation
pwmx327 power -23 5 -1000000000 -> NaN Invalid_operation
pwmx328 power 41557 213 -999999999 -> 47650456
pwmx329 power -2134 199 999999997 -> -946957912

-- Huge base shouldn't present any problems
pwmx330 power 1.23E+123456791 10123898 17291065 -> 5674045

-- Large exponent, may be slow
-- (if second argument is 1En then expect O(n) running time)
pwmx331 power 1000288896 9.87E+12347 93379908 -> 43224924

-- Triple NaN propagation (adapted from examples in fma.decTest)
pwmx400 power  NaN2  NaN3  NaN5   ->  NaN2
pwmx401 power  1     NaN3  NaN5   ->  NaN3
pwmx402 power  1     1     NaN5   ->  NaN5
pwmx403 power  sNaN1 sNaN2 sNaN3  ->  NaN1 Invalid_operation
pwmx404 power  1     sNaN2 sNaN3  ->  NaN2 Invalid_operation
pwmx405 power  1     1     sNaN3  ->  NaN3 Invalid_operation
pwmx406 power  sNaN1 sNaN2 sNaN3  ->  NaN1 Invalid_operation
pwmx407 power  NaN7  sNaN2 sNaN3  ->  NaN2 Invalid_operation
pwmx408 power  NaN7  NaN5  sNaN3  ->  NaN3 Invalid_operation

-- Infinities not allowed
pwmx410 power Inf 1 1 -> NaN Invalid_operation
pwmx411 power 1 Inf 1 -> NaN Invalid_operation
pwmx412 power 1 1 Inf -> NaN Invalid_operation
pwmx413 power -Inf 1 1 -> NaN Invalid_operation
pwmx414 power 1 -Inf 1 -> NaN Invalid_operation
pwmx415 power 1 1 -Inf -> NaN Invalid_operation

-- Just for fun: 1729 is a Carmichael number
pwmx420 power 0 1728 1729 -> 0
pwmx421 power 1 1728 1729 -> 1
pwmx422 power 2 1728 1729 -> 1
pwmx423 power 3 1728 1729 -> 1
pwmx424 power 4 1728 1729 -> 1
pwmx425 power 5 1728 1729 -> 1
pwmx426 power 6 1728 1729 -> 1
pwmx427 power 7 1728 1729 -> 742
pwmx428 power 8 1728 1729 -> 1
pwmx429 power 9 1728 1729 -> 1
pwmx430 power 10 1728 1729 -> 1
pwmx431 power 11 1728 1729 -> 1
pwmx432 power 12 1728 1729 -> 1
pwmx433 power 13 1728 1729 -> 533
pwmx434 power 14 1728 1729 -> 742
pwmx435 power 15 1728 1729 -> 1
pwmx436 power 16 1728 1729 -> 1
pwmx437 power 17 1728 1729 -> 1
pwmx438 power 18 1728 1729 -> 1
pwmx439 power 19 1728 1729 -> 456
pwmx440 power 20 1728 1729 -> 1