Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / src / nas,5.n2.os.2 / lib / python / lib / python2.4 / test / decimaltestdata / power.decTest
CommitLineData
86530b38
AT
1----------------------------------------------------------------------
2-- power.decTest -- decimal exponentiation --
3-- Copyright (c) IBM Corporation, 1981, 2003. All rights reserved. --
4------------------------------------------------------------------------
5-- Please see the document "General Decimal Arithmetic Testcases" --
6-- at http://www2.hursley.ibm.com/decimal for the description of --
7-- these testcases. --
8-- --
9-- These testcases are experimental ('beta' versions), and they --
10-- may contain errors. They are offered on an as-is basis. In --
11-- particular, achieving the same results as the tests here is not --
12-- a guarantee that an implementation complies with any Standard --
13-- or specification. The tests are not exhaustive. --
14-- --
15-- Please send comments, suggestions, and corrections to the author: --
16-- Mike Cowlishaw, IBM Fellow --
17-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
18-- mfc@uk.ibm.com --
19------------------------------------------------------------------------
20version: 2.39
21
22-- This set of testcases tests raising numbers to an integer power only.
23-- If arbitrary powers were supported, 1 ulp differences would be
24-- permitted.
25
26extended: 1
27precision: 9
28rounding: half_up
29maxExponent: 999
30minexponent: -999
31
32-- base checks. Note 0**0 is an error.
33powx001 power '0' '0' -> NaN Invalid_operation
34powx002 power '0' '1' -> '0'
35powx003 power '0' '2' -> '0'
36powx004 power '1' '0' -> '1'
37powx005 power '1' '1' -> '1'
38powx006 power '1' '2' -> '1'
39
40powx010 power '2' '0' -> '1'
41powx011 power '2' '1' -> '2'
42powx012 power '2' '2' -> '4'
43powx013 power '2' '3' -> '8'
44powx014 power '2' '4' -> '16'
45powx015 power '2' '5' -> '32'
46powx016 power '2' '6' -> '64'
47powx017 power '2' '7' -> '128'
48powx018 power '2' '8' -> '256'
49powx019 power '2' '9' -> '512'
50powx020 power '2' '10' -> '1024'
51powx021 power '2' '11' -> '2048'
52powx022 power '2' '12' -> '4096'
53powx023 power '2' '15' -> '32768'
54powx024 power '2' '16' -> '65536'
55powx025 power '2' '31' -> '2.14748365E+9' Inexact Rounded
56-- NB 0 not stripped in next
57powx026 power '2' '32' -> '4.29496730E+9' Inexact Rounded
58precision: 10
59powx027 power '2' '31' -> '2147483648'
60powx028 power '2' '32' -> '4294967296'
61precision: 9
62
63powx030 power '3' '2' -> 9
64powx031 power '4' '2' -> 16
65powx032 power '5' '2' -> 25
66powx033 power '6' '2' -> 36
67powx034 power '7' '2' -> 49
68powx035 power '8' '2' -> 64
69powx036 power '9' '2' -> 81
70powx037 power '10' '2' -> 100
71powx038 power '11' '2' -> 121
72powx039 power '12' '2' -> 144
73
74powx040 power '3' '3' -> 27
75powx041 power '4' '3' -> 64
76powx042 power '5' '3' -> 125
77powx043 power '6' '3' -> 216
78powx044 power '7' '3' -> 343
79
80powx050 power '10' '0' -> 1
81powx051 power '10' '1' -> 10
82powx052 power '10' '2' -> 100
83powx053 power '10' '3' -> 1000
84powx054 power '10' '4' -> 10000
85powx055 power '10' '5' -> 100000
86powx056 power '10' '6' -> 1000000
87powx057 power '10' '7' -> 10000000
88powx058 power '10' '8' -> 100000000
89powx059 power '10' '9' -> 1.00000000E+9 Rounded
90powx060 power '10' '22' -> 1.00000000E+22 Rounded
91powx061 power '10' '77' -> 1.00000000E+77 Rounded
92powx062 power '10' '99' -> 1.00000000E+99 Rounded
93
94maxexponent: 999999999
95minexponent: -999999999
96powx063 power '10' '999999999' -> '1.00000000E+999999999' Rounded
97powx064 power '10' '999999998' -> '1.00000000E+999999998' Rounded
98powx065 power '10' '999999997' -> '1.00000000E+999999997' Rounded
99powx066 power '10' '333333333' -> '1.00000000E+333333333' Rounded
100
101powx070 power '0.3' '0' -> '1'
102powx071 power '0.3' '1' -> '0.3'
103powx072 power '0.3' '1.00' -> '0.3'
104powx073 power '0.3' '2.00' -> '0.09'
105powx074 power '0.3' '2.000000000' -> '0.09'
106powx075 power '6.0' '1' -> '6.0' -- NB zeros not stripped
107powx076 power '6.0' '2' -> '36.00' -- ..
108powx077 power '-3' '2' -> '9' -- from NetRexx book
109powx078 power '4' '3' -> '64' -- .. (sort of)
110
111powx080 power 0.1 0 -> 1
112powx081 power 0.1 1 -> 0.1
113powx082 power 0.1 2 -> 0.01
114powx083 power 0.1 3 -> 0.001
115powx084 power 0.1 4 -> 0.0001
116powx085 power 0.1 5 -> 0.00001
117powx086 power 0.1 6 -> 0.000001
118powx087 power 0.1 7 -> 1E-7
119powx088 power 0.1 8 -> 1E-8
120powx089 power 0.1 9 -> 1E-9
121
122powx090 power 101 2 -> 10201
123powx091 power 101 3 -> 1030301
124powx092 power 101 4 -> 104060401
125powx093 power 101 5 -> 1.05101005E+10 Inexact Rounded
126powx094 power 101 6 -> 1.06152015E+12 Inexact Rounded
127powx095 power 101 7 -> 1.07213535E+14 Inexact Rounded
128
129-- negative powers
130powx101 power '2' '-1' -> 0.5
131powx102 power '2' '-2' -> 0.25
132powx103 power '2' '-4' -> 0.0625
133powx104 power '2' '-8' -> 0.00390625
134powx105 power '2' '-16' -> 0.0000152587891 Inexact Rounded
135powx106 power '2' '-32' -> 2.32830644E-10 Inexact Rounded
136powx108 power '2' '-64' -> 5.42101086E-20 Inexact Rounded
137powx110 power '10' '-8' -> 1E-8
138powx111 power '10' '-7' -> 1E-7
139powx112 power '10' '-6' -> 0.000001
140powx113 power '10' '-5' -> 0.00001
141powx114 power '10' '-4' -> 0.0001
142powx115 power '10' '-3' -> 0.001
143powx116 power '10' '-2' -> 0.01
144powx117 power '10' '-1' -> 0.1
145
146powx118 power '10' '-333333333' -> 1E-333333333
147powx119 power '10' '-999999998' -> 1E-999999998
148powx120 power '10' '-999999999' -> 1E-999999999
149powx121 power '10' '-77' -> '1E-77'
150powx122 power '10' '-22' -> '1E-22'
151
152powx123 power '2' '-1' -> '0.5'
153powx124 power '2' '-2' -> '0.25'
154powx125 power '2' '-4' -> '0.0625'
155powx126 power '0' '-1' -> Infinity Division_by_zero
156powx127 power '0' '-2' -> Infinity Division_by_zero
157powx128 power -0 '-1' -> -Infinity Division_by_zero
158powx129 power -0 '-2' -> Infinity Division_by_zero
159
160-- out-of-range edge cases
161powx181 power '7' '999999998' -> 2.10892313E+845098038 Inexact Rounded
162powx182 power '7' '999999999' -> 1.47624619E+845098039 Inexact Rounded
163powx183 power '7' '1000000000' -> NaN Invalid_operation
164powx184 power '7' '1000000001' -> NaN Invalid_operation
165powx185 power '7' '10000000000' -> NaN Invalid_operation
166powx186 power '7' '-1000000001' -> NaN Invalid_operation
167powx187 power '7' '-1000000000' -> NaN Invalid_operation
168powx189 power '7' '-999999999' -> 6.77393787E-845098040 Inexact Rounded
169powx190 power '7' '-999999998' -> 4.74175651E-845098039 Inexact Rounded
170
171-- some baddies [more below]
172powx191 power '2' '2.000001' -> NaN Invalid_operation
173powx192 power '2' '2.00000000' -> 4
174powx193 power '2' '2.000000001' -> NaN Invalid_operation
175powx194 power '2' '2.0000000001' -> NaN Invalid_operation
176
177-- "0.5" tests from original Rexx diagnostics [loop unrolled]
178powx200 power 0.5 0 -> 1
179powx201 power 0.5 1 -> 0.5
180powx202 power 0.5 2 -> 0.25
181powx203 power 0.5 3 -> 0.125
182powx204 power 0.5 4 -> 0.0625
183powx205 power 0.5 5 -> 0.03125
184powx206 power 0.5 6 -> 0.015625
185powx207 power 0.5 7 -> 0.0078125
186powx208 power 0.5 8 -> 0.00390625
187powx209 power 0.5 9 -> 0.001953125
188powx210 power 0.5 10 -> 0.0009765625
189
190-- A (rare) case where the last digit is not within 0.5 ULP
191precision: 9
192powx215 power "-21971575.0E+31454441" "-7" -> "-4.04549503E-220181139" Inexact Rounded
193precision: 20
194powx216 power "-21971575.0E+31454441" "-7" -> "-4.0454950249324891788E-220181139" Inexact Rounded
195
196-- The Vienna case. Checks both setup and 1/acc working precision
197-- Modified 1998.12.14 as RHS no longer rounded before use (must fit)
198-- Modified 1990.02.04 as LHS is now rounded (instead of truncated to guard)
199-- '123456789E+10' -- lhs .. rounded to 1.23E+18
200-- '-1.23000e+2' -- rhs .. [was: -1.23455e+2, rounds to -123]
201-- Modified 2002.10.06 -- finally, no input rounding
202-- With input rounding, result would be 8.74E-2226
203precision: 3
204powx219 power '123456789E+10' '-1.23000e+2' -> '5.54E-2226' Inexact Rounded
205
206-- whole number checks
207precision: 9
208powx221 power 1 1234 -> 1
209precision: 4
210powx222 power 1 1234 -> 1
211precision: 3
212powx223 power 1 1234 -> 1
213powx224 power 1 12.34e+2 -> 1
214powx225 power 1 12.3 -> NaN Invalid_operation
215powx226 power 1 12.0 -> 1
216powx227 power 1 1.01 -> NaN Invalid_operation
217powx228 power 2 1.00 -> 2
218powx229 power 2 2.00 -> 4
219precision: 9
220powx230 power 1 1.0001 -> NaN Invalid_operation
221powx231 power 1 1.0000001 -> NaN Invalid_operation
222powx232 power 1 1.0000000001 -> NaN Invalid_operation
223powx233 power 1 1.0000000000001 -> NaN Invalid_operation
224precision: 5
225powx234 power 1 1.0001 -> NaN Invalid_operation
226powx235 power 1 1.0000001 -> NaN Invalid_operation
227powx236 power 1 1.0000000001 -> NaN Invalid_operation
228powx237 power 1 1.0000000000001 -> NaN Invalid_operation
229powx238 power 1 1.0000000000001 -> NaN Invalid_operation
230
231maxexponent: 999999999
232minexponent: -999999999
233powx239 power 1 5.67E-987654321 -> NaN Invalid_operation
234
235powx240 power 1 100000000 -> 1
236powx241 power 1 999999998 -> 1
237powx242 power 1 999999999 -> 1
238powx243 power 1 1000000000 -> NaN Invalid_operation
239powx244 power 1 9999999999 -> NaN Invalid_operation
240
241-- Checks for 'Too much precision needed'
242-- For x^12, digits+elength+1 = digits+3
243precision: 999999999
244powx249 add 1 1 -> 2 -- check basic operation at this precision
245powx250 power 2 12 -> Infinity Overflow
246precision: 999999998
247powx251 power 2 12 -> Infinity Overflow
248precision: 999999997
249powx252 power 2 12 -> Infinity Overflow
250precision: 999999996
251powx253 power 2 12 -> 4096
252precision: 999999995
253powx254 power 2 12 -> 4096
254
255-- zeros
256maxexponent: +96
257minexponent: -95
258precision: 7
259powx260 power 0E-34 3 -> 0E-101 Clamped
260powx261 power 0E-33 3 -> 0E-99
261powx262 power 0E-32 3 -> 0E-96
262powx263 power 0E-30 3 -> 0E-90
263powx264 power 0E-10 3 -> 0E-30
264powx265 power 0E-1 3 -> 0.000
265powx266 power 0E+0 3 -> 0
266powx267 power 0 3 -> 0
267powx268 power 0E+1 3 -> 0E+3
268powx269 power 0E+10 3 -> 0E+30
269powx270 power 0E+30 3 -> 0E+90
270powx271 power 0E+32 3 -> 0E+96
271powx272 power 0E+33 3 -> 0E+96 Clamped
272
273-- overflow and underflow tests
274maxexponent: 999999999
275minexponent: -999999999
276precision: 9
277powx280 power 9 999999999 -> 3.05550054E+954242508 Inexact Rounded
278powx281 power 10 999999999 -> 1.00000000E+999999999 Rounded
279powx282 power 10.0001 999999999 -> Infinity Overflow Inexact Rounded
280powx283 power 10.1 999999999 -> Infinity Overflow Inexact Rounded
281powx284 power 11 999999999 -> Infinity Overflow Inexact Rounded
282powx285 power 12 999999999 -> Infinity Overflow Inexact Rounded
283powx286 power 999 999999999 -> Infinity Overflow Inexact Rounded
284powx287 power 999999 999999999 -> Infinity Overflow Inexact Rounded
285powx288 power 999999999 999999999 -> Infinity Overflow Inexact Rounded
286powx289 power 9.9E999999999 999999999 -> Infinity Overflow Inexact Rounded
287
288powx290 power 0.5 999999999 -> 4.33559594E-301029996 Inexact Rounded
289powx291 power 0.1 999999999 -> 1E-999999999 -- unrounded
290powx292 power 0.09 999999999 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
291powx293 power 0.05 999999999 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
292powx294 power 0.01 999999999 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
293powx295 power 0.0001 999999999 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
294powx297 power 0.0000001 999999999 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
295powx298 power 0.0000000001 999999999 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
296powx299 power 1E-999999999 999999999 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
297
298powx310 power -9 999999999 -> -3.05550054E+954242508 Inexact Rounded
299powx311 power -10 999999999 -> -1.00000000E+999999999 Rounded
300powx312 power -10.0001 999999999 -> -Infinity Overflow Inexact Rounded
301powx313 power -10.1 999999999 -> -Infinity Overflow Inexact Rounded
302powx314 power -11 999999999 -> -Infinity Overflow Inexact Rounded
303powx315 power -12 999999999 -> -Infinity Overflow Inexact Rounded
304powx316 power -999 999999999 -> -Infinity Overflow Inexact Rounded
305powx317 power -999999 999999999 -> -Infinity Overflow Inexact Rounded
306powx318 power -999999999 999999999 -> -Infinity Overflow Inexact Rounded
307powx319 power -9.9E999999999 999999999 -> -Infinity Overflow Inexact Rounded
308
309powx320 power -0.5 999999999 -> -4.33559594E-301029996 Inexact Rounded
310powx321 power -0.1 999999999 -> -1E-999999999
311powx322 power -0.09 999999999 -> -0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
312powx323 power -0.05 999999999 -> -0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
313powx324 power -0.01 999999999 -> -0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
314powx325 power -0.0001 999999999 -> -0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
315powx327 power -0.0000001 999999999 -> -0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
316powx328 power -0.0000000001 999999999 -> -0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
317powx329 power -1E-999999999 999999999 -> -0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
318
319-- note no trim of next result
320powx330 power -9 999999998 -> 3.39500060E+954242507 Inexact Rounded
321powx331 power -10 999999998 -> 1.00000000E+999999998 Rounded
322powx332 power -10.0001 999999998 -> Infinity Overflow Inexact Rounded
323powx333 power -10.1 999999998 -> Infinity Overflow Inexact Rounded
324powx334 power -11 999999998 -> Infinity Overflow Inexact Rounded
325powx335 power -12 999999998 -> Infinity Overflow Inexact Rounded
326powx336 power -999 999999998 -> Infinity Overflow Inexact Rounded
327powx337 power -999999 999999998 -> Infinity Overflow Inexact Rounded
328powx338 power -999999999 999999998 -> Infinity Overflow Inexact Rounded
329powx339 power -9.9E999999999 999999998 -> Infinity Overflow Inexact Rounded
330
331powx340 power -0.5 999999998 -> 8.67119187E-301029996 Inexact Rounded
332powx341 power -0.1 999999998 -> 1E-999999998 -- NB exact unrounded
333powx342 power -0.09 999999998 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
334powx343 power -0.05 999999998 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
335powx344 power -0.01 999999998 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
336powx345 power -0.0001 999999998 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
337powx347 power -0.0000001 999999998 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
338powx348 power -0.0000000001 999999998 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
339powx349 power -1E-999999999 999999998 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
340
341-- some subnormals
342precision: 9
343-- [precision is 9, so smallest exponent is -1000000007
344powx350 power 1e-1 500000000 -> 1E-500000000
345powx351 power 1e-2 999999999 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
346powx352 power 1e-2 500000000 -> 1E-1000000000 Subnormal
347powx353 power 1e-2 500000001 -> 1E-1000000002 Subnormal
348powx354 power 1e-2 500000002 -> 1E-1000000004 Subnormal
349powx355 power 1e-2 500000003 -> 1E-1000000006 Subnormal
350powx356 power 1e-2 500000004 -> 0E-1000000007 Underflow Subnormal Inexact Rounded
351
352powx360 power 0.010001 500000000 -> 4.34941988E-999978287 Inexact Rounded
353powx361 power 0.010000001 500000000 -> 5.18469257E-999999979 Inexact Rounded
354powx362 power 0.010000001 500000001 -> 5.18469309E-999999981 Inexact Rounded
355powx363 power 0.0100000009 500000000 -> 3.49342003E-999999981 Inexact Rounded
356powx364 power 0.0100000001 500000000 -> 1.48413155E-999999998 Inexact Rounded
357powx365 power 0.01 500000000 -> 1E-1000000000 Subnormal
358powx366 power 0.0099999999 500000000 -> 6.7379E-1000000003 Underflow Subnormal Inexact Rounded
359powx367 power 0.0099999998 500000000 -> 4.54E-1000000005 Underflow Subnormal Inexact Rounded
360powx368 power 0.0099999997 500000000 -> 3E-1000000007 Underflow Subnormal Inexact Rounded
361powx369 power 0.0099999996 500000000 -> 0E-1000000007 Underflow Subnormal Inexact Rounded
362powx370 power 0.009 500000000 -> 0E-1000000007 Underflow Subnormal Inexact Rounded Clamped
363
364-- 1/subnormal -> overflow
365powx371 power 1e-1 -500000000 -> 1E+500000000
366powx372 power 1e-2 -999999999 -> Infinity Overflow Inexact Rounded
367powx373 power 1e-2 -500000000 -> Infinity Overflow Inexact Rounded
368powx374 power 1e-2 -500000001 -> Infinity Overflow Inexact Rounded
369powx375 power 1e-2 -500000002 -> Infinity Overflow Inexact Rounded
370powx376 power 1e-2 -500000003 -> Infinity Overflow Inexact Rounded
371powx377 power 1e-2 -500000004 -> Infinity Overflow Inexact Rounded
372
373powx381 power 0.010001 -500000000 -> 2.29915719E+999978286 Inexact Rounded
374powx382 power 0.010000001 -500000000 -> 1.92875467E+999999978 Inexact Rounded
375powx383 power 0.010000001 -500000001 -> 1.92875448E+999999980 Inexact Rounded
376powx384 power 0.0100000009 -500000000 -> 2.86252438E+999999980 Inexact Rounded
377powx385 power 0.0100000001 -500000000 -> 6.73794717E+999999997 Inexact Rounded
378powx386 power 0.01 -500000000 -> Infinity Overflow Inexact Rounded
379powx387 power 0.009999 -500000000 -> Infinity Overflow Inexact Rounded
380
381-- negative power giving subnormal
382powx388 power 100.000001 -500000000 -> 6.7379E-1000000003 Underflow Subnormal Inexact Rounded
383
384-- some more edge cases
385precision: 15
386maxExponent: 999
387minexponent: -999
388powx391 power 0.1 999 -> 1E-999
389powx392 power 0.099 999 -> 4.360732062E-1004 Underflow Subnormal Inexact Rounded
390powx393 power 0.098 999 -> 1.71731E-1008 Underflow Subnormal Inexact Rounded
391powx394 power 0.097 999 -> 6E-1013 Underflow Subnormal Inexact Rounded
392powx395 power 0.096 999 -> 0E-1013 Underflow Subnormal Inexact Rounded
393powx396 power 0.01 999 -> 0E-1013 Underflow Subnormal Inexact Rounded Clamped
394
395-- multiply tests are here to aid checking and test for consistent handling
396-- of underflow
397precision: 5
398maxexponent: 999
399minexponent: -999
400
401-- squares
402mulx400 multiply 1E-502 1e-502 -> 0E-1003 Subnormal Inexact Underflow Rounded
403mulx401 multiply 1E-501 1e-501 -> 1E-1002 Subnormal
404mulx402 multiply 2E-501 2e-501 -> 4E-1002 Subnormal
405mulx403 multiply 4E-501 4e-501 -> 1.6E-1001 Subnormal
406mulx404 multiply 10E-501 10e-501 -> 1.00E-1000 Subnormal
407mulx405 multiply 30E-501 30e-501 -> 9.00E-1000 Subnormal
408mulx406 multiply 40E-501 40e-501 -> 1.600E-999
409
410powx400 power 1E-502 2 -> 0E-1003 Underflow Subnormal Inexact Rounded
411powx401 power 1E-501 2 -> 1E-1002 Subnormal
412powx402 power 2E-501 2 -> 4E-1002 Subnormal
413powx403 power 4E-501 2 -> 1.6E-1001 Subnormal
414powx404 power 10E-501 2 -> 1.00E-1000 Subnormal
415powx405 power 30E-501 2 -> 9.00E-1000 Subnormal
416powx406 power 40E-501 2 -> 1.600E-999
417
418-- cubes
419mulx410 multiply 1E-670 1e-335 -> 0E-1003 Underflow Subnormal Inexact Rounded
420mulx411 multiply 1E-668 1e-334 -> 1E-1002 Subnormal
421mulx412 multiply 4E-668 2e-334 -> 8E-1002 Subnormal
422mulx413 multiply 9E-668 3e-334 -> 2.7E-1001 Subnormal
423mulx414 multiply 16E-668 4e-334 -> 6.4E-1001 Subnormal
424mulx415 multiply 25E-668 5e-334 -> 1.25E-1000 Subnormal
425mulx416 multiply 10E-668 100e-334 -> 1.000E-999
426
427powx410 power 1E-335 3 -> 0E-1003 Underflow Subnormal Inexact Rounded
428powx411 power 1E-334 3 -> 1E-1002 Subnormal
429powx412 power 2E-334 3 -> 8E-1002 Subnormal
430powx413 power 3E-334 3 -> 2.7E-1001 Subnormal
431powx414 power 4E-334 3 -> 6.4E-1001 Subnormal
432powx415 power 5E-334 3 -> 1.25E-1000 Subnormal
433powx416 power 10E-334 3 -> 1.000E-999
434
435-- negative powers, testing subnormals
436precision: 5
437maxExponent: 999
438minexponent: -999
439powx421 power 2.5E-501 -2 -> Infinity Overflow Inexact Rounded
440powx422 power 2.5E-500 -2 -> 1.6E+999
441
442powx423 power 2.5E+499 -2 -> 1.6E-999
443powx424 power 2.5E+500 -2 -> 1.6E-1001 Subnormal
444powx425 power 2.5E+501 -2 -> 2E-1003 Underflow Subnormal Inexact Rounded
445powx426 power 2.5E+502 -2 -> 0E-1003 Underflow Subnormal Inexact Rounded
446
447powx427 power 0.25E+499 -2 -> 1.6E-997
448powx428 power 0.25E+500 -2 -> 1.6E-999
449powx429 power 0.25E+501 -2 -> 1.6E-1001 Subnormal
450powx430 power 0.25E+502 -2 -> 2E-1003 Underflow Subnormal Inexact Rounded
451powx431 power 0.25E+503 -2 -> 0E-1003 Underflow Subnormal Inexact Rounded
452
453powx432 power 0.04E+499 -2 -> 6.25E-996
454powx433 power 0.04E+500 -2 -> 6.25E-998
455powx434 power 0.04E+501 -2 -> 6.25E-1000 Subnormal
456powx435 power 0.04E+502 -2 -> 6.3E-1002 Underflow Subnormal Inexact Rounded
457powx436 power 0.04E+503 -2 -> 1E-1003 Underflow Subnormal Inexact Rounded
458powx437 power 0.04E+504 -2 -> 0E-1003 Underflow Subnormal Inexact Rounded
459
460powx441 power 0.04E+334 -3 -> 1.5625E-998
461powx442 power 0.04E+335 -3 -> 1.56E-1001 Underflow Subnormal Inexact Rounded
462powx443 power 0.04E+336 -3 -> 0E-1003 Underflow Subnormal Inexact Rounded
463powx444 power 0.25E+333 -3 -> 6.4E-998
464powx445 power 0.25E+334 -3 -> 6.4E-1001 Subnormal
465powx446 power 0.25E+335 -3 -> 1E-1003 Underflow Subnormal Inexact Rounded
466powx447 power 0.25E+336 -3 -> 0E-1003 Underflow Subnormal Inexact Rounded Clamped
467-- check sign for cubes and a few squares
468powx448 power -0.04E+334 -3 -> -1.5625E-998
469powx449 power -0.04E+335 -3 -> -1.56E-1001 Underflow Subnormal Inexact Rounded
470powx450 power -0.04E+336 -3 -> -0E-1003 Underflow Subnormal Inexact Rounded
471powx451 power -0.25E+333 -3 -> -6.4E-998
472powx452 power -0.25E+334 -3 -> -6.4E-1001 Subnormal
473powx453 power -0.25E+335 -3 -> -1E-1003 Underflow Subnormal Inexact Rounded
474powx454 power -0.25E+336 -3 -> -0E-1003 Underflow Subnormal Inexact Rounded Clamped
475powx455 power -0.04E+499 -2 -> 6.25E-996
476powx456 power -0.04E+500 -2 -> 6.25E-998
477powx457 power -0.04E+501 -2 -> 6.25E-1000 Subnormal
478powx458 power -0.04E+502 -2 -> 6.3E-1002 Underflow Subnormal Inexact Rounded
479
480-- test -0s
481precision: 9
482powx560 power 0 0 -> NaN Invalid_operation
483powx561 power 0 -0 -> NaN Invalid_operation
484powx562 power -0 0 -> NaN Invalid_operation
485powx563 power -0 -0 -> NaN Invalid_operation
486powx564 power 1 0 -> 1
487powx565 power 1 -0 -> 1
488powx566 power -1 0 -> 1
489powx567 power -1 -0 -> 1
490powx568 power 0 1 -> 0
491powx569 power 0 -1 -> Infinity Division_by_zero
492powx570 power -0 1 -> -0
493powx571 power -0 -1 -> -Infinity Division_by_zero
494powx572 power 0 2 -> 0
495powx573 power 0 -2 -> Infinity Division_by_zero
496powx574 power -0 2 -> 0
497powx575 power -0 -2 -> Infinity Division_by_zero
498powx576 power 0 3 -> 0
499powx577 power 0 -3 -> Infinity Division_by_zero
500powx578 power -0 3 -> -0
501powx579 power -0 -3 -> -Infinity Division_by_zero
502
503-- Specials
504powx580 power Inf -Inf -> NaN Invalid_operation
505powx581 power Inf -1000 -> 0
506powx582 power Inf -1 -> 0
507powx583 power Inf -0 -> 1
508powx584 power Inf 0 -> 1
509powx585 power Inf 1 -> Infinity
510powx586 power Inf 1000 -> Infinity
511powx587 power Inf Inf -> NaN Invalid_operation
512powx588 power -1000 Inf -> NaN Invalid_operation
513powx589 power -Inf Inf -> NaN Invalid_operation
514powx590 power -1 Inf -> NaN Invalid_operation
515powx591 power -0 Inf -> NaN Invalid_operation
516powx592 power 0 Inf -> NaN Invalid_operation
517powx593 power 1 Inf -> NaN Invalid_operation
518powx594 power 1000 Inf -> NaN Invalid_operation
519powx595 power Inf Inf -> NaN Invalid_operation
520
521powx600 power -Inf -Inf -> NaN Invalid_operation
522powx601 power -Inf -1000 -> 0
523powx602 power -Inf -1 -> -0
524powx603 power -Inf -0 -> 1
525powx604 power -Inf 0 -> 1
526powx605 power -Inf 1 -> -Infinity
527powx606 power -Inf 1000 -> Infinity
528powx607 power -Inf Inf -> NaN Invalid_operation
529powx608 power -1000 Inf -> NaN Invalid_operation
530powx609 power -Inf -Inf -> NaN Invalid_operation
531powx610 power -1 -Inf -> NaN Invalid_operation
532powx611 power -0 -Inf -> NaN Invalid_operation
533powx612 power 0 -Inf -> NaN Invalid_operation
534powx613 power 1 -Inf -> NaN Invalid_operation
535powx614 power 1000 -Inf -> NaN Invalid_operation
536powx615 power Inf -Inf -> NaN Invalid_operation
537
538powx621 power NaN -Inf -> NaN Invalid_operation
539powx622 power NaN -1000 -> NaN
540powx623 power NaN -1 -> NaN
541powx624 power NaN -0 -> NaN
542powx625 power NaN 0 -> NaN
543powx626 power NaN 1 -> NaN
544powx627 power NaN 1000 -> NaN
545powx628 power NaN Inf -> NaN Invalid_operation
546powx629 power NaN NaN -> NaN
547powx630 power -Inf NaN -> NaN
548powx631 power -1000 NaN -> NaN
549powx632 power -1 NaN -> NaN
550powx633 power -0 NaN -> NaN
551powx634 power 0 NaN -> NaN
552powx635 power 1 NaN -> NaN
553powx636 power 1000 NaN -> NaN
554powx637 power Inf NaN -> NaN
555
556powx641 power sNaN -Inf -> NaN Invalid_operation
557powx642 power sNaN -1000 -> NaN Invalid_operation
558powx643 power sNaN -1 -> NaN Invalid_operation
559powx644 power sNaN -0 -> NaN Invalid_operation
560powx645 power sNaN 0 -> NaN Invalid_operation
561powx646 power sNaN 1 -> NaN Invalid_operation
562powx647 power sNaN 1000 -> NaN Invalid_operation
563powx648 power sNaN NaN -> NaN Invalid_operation
564powx649 power sNaN sNaN -> NaN Invalid_operation
565powx650 power NaN sNaN -> NaN Invalid_operation
566powx651 power -Inf sNaN -> NaN Invalid_operation
567powx652 power -1000 sNaN -> NaN Invalid_operation
568powx653 power -1 sNaN -> NaN Invalid_operation
569powx654 power -0 sNaN -> NaN Invalid_operation
570powx655 power 0 sNaN -> NaN Invalid_operation
571powx656 power 1 sNaN -> NaN Invalid_operation
572powx657 power 1000 sNaN -> NaN Invalid_operation
573powx658 power Inf sNaN -> NaN Invalid_operation
574powx659 power NaN sNaN -> NaN Invalid_operation
575
576-- NaN propagation
577powx660 power NaN3 sNaN7 -> NaN7 Invalid_operation
578powx661 power sNaN8 NaN6 -> NaN8 Invalid_operation
579powx662 power 1 sNaN7 -> NaN7 Invalid_operation
580powx663 power sNaN8 1 -> NaN8 Invalid_operation
581powx664 power Inf sNaN7 -> NaN7 Invalid_operation
582powx665 power sNaN8 Inf -> NaN Invalid_operation
583powx666 power Inf NaN9 -> NaN9
584powx667 power NaN6 Inf -> NaN Invalid_operation
585powx668 power 1 NaN5 -> NaN5
586powx669 power NaN2 1 -> NaN2
587powx670 power NaN2 Nan4 -> NaN2
588powx671 power NaN Nan4 -> NaN
589powx672 power NaN345 Nan -> NaN345
590powx673 power Inf -sNaN7 -> -NaN7 Invalid_operation
591powx674 power -sNaN8 Inf -> NaN Invalid_operation
592powx675 power Inf -NaN9 -> -NaN9
593powx676 power -NaN6 Inf -> NaN Invalid_operation
594powx677 power -NaN2 -Nan4 -> -NaN2
595
596-- Examples from extended specification
597powx690 power Inf -2 -> 0
598powx691 power Inf -1 -> 0
599powx692 power Inf 0 -> 1
600powx693 power Inf 1 -> Infinity
601powx694 power Inf 2 -> Infinity
602powx695 power -Inf -2 -> 0
603powx696 power -Inf -1 -> -0
604powx697 power -Inf 0 -> 1
605powx698 power -Inf 1 -> -Infinity
606powx699 power -Inf 2 -> Infinity
607powx700 power 0 0 -> NaN Invalid_operation
608
609-- long operand and RHS range checks
610maxexponent: 999
611minexponent: -999
612precision: 9
613powx701 power 12345678000 1 -> 1.23456780E+10 Rounded
614powx702 power 1234567800 1 -> 1.23456780E+9 Rounded
615powx703 power 1234567890 1 -> 1.23456789E+9 Rounded
616powx704 power 1234567891 1 -> 1.23456789E+9 Inexact Rounded
617powx705 power 12345678901 1 -> 1.23456789E+10 Inexact Rounded
618powx706 power 1234567896 1 -> 1.23456790E+9 Inexact Rounded
619powx707 power 1 12345678000 -> NaN Invalid_operation
620powx708 power 1 1234567800 -> NaN Invalid_operation
621powx709 power 1 1234567890 -> NaN Invalid_operation
622powx710 power 1 11234567891 -> NaN Invalid_operation
623powx711 power 1 12345678901 -> NaN Invalid_operation
624powx712 power 1 1234567896 -> NaN Invalid_operation
625powx713 power 1 -1234567896 -> NaN Invalid_operation
626powx714 power 1 1000000000 -> NaN Invalid_operation
627powx715 power 1 -1000000000 -> NaN Invalid_operation
628
629precision: 15
630-- still checking
631powx741 power 12345678000 1 -> 12345678000
632powx742 power 1234567800 1 -> 1234567800
633powx743 power 1234567890 1 -> 1234567890
634powx744 power 1234567891 1 -> 1234567891
635powx745 power 12345678901 1 -> 12345678901
636powx746 power 1234567896 1 -> 1234567896
637powx747 power 1 12345678000 -> NaN Invalid_operation
638powx748 power 1 -1234567896 -> NaN Invalid_operation
639powx749 power 1 1000000000 -> NaN Invalid_operation
640powx740 power 1 -1000000000 -> NaN Invalid_operation
641
642-- check for double-rounded subnormals
643precision: 5
644maxexponent: 79
645minexponent: -79
646powx750 power 1.2347E-40 2 -> 1.524E-80 Inexact Rounded Subnormal Underflow
647
648-- Null tests
649powx900 power 1 # -> NaN Invalid_operation
650powx901 power # 1 -> NaN Invalid_operation
651