1------------------------------------------------------------------------
2-- exp.decTest -- decimal natural exponentiation                      --
3-- Copyright (c) IBM Corporation, 2005, 2008.  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.59
21
22-- Tests of the exponential function.  Currently all testcases here
23-- show results which are correctly rounded (within <= 0.5 ulp).
24
25extended:    1
26precision:   9
27rounding:    half_even
28maxExponent: 384
29minexponent: -383
30
31-- basics (examples in specificiation, etc.)
32expx001 exp  -Infinity     -> 0
33expx002 exp  -10           -> 0.0000453999298 Inexact Rounded
34expx003 exp  -1            -> 0.367879441 Inexact Rounded
35expx004 exp   0            -> 1
36expx005 exp  -0            -> 1
37expx006 exp   1            -> 2.71828183  Inexact Rounded
38expx007 exp   0.693147181  -> 2.00000000  Inexact Rounded
39expx008 exp   10           -> 22026.4658  Inexact Rounded
40expx009 exp  +Infinity     -> Infinity
41
42-- tiny edge cases
43precision:   7
44expx011 exp  0.1          ->  1.105171  Inexact Rounded
45expx012 exp  0.01         ->  1.010050  Inexact Rounded
46expx013 exp  0.001        ->  1.001001  Inexact Rounded
47expx014 exp  0.0001       ->  1.000100  Inexact Rounded
48expx015 exp  0.00001      ->  1.000010  Inexact Rounded
49expx016 exp  0.000001     ->  1.000001  Inexact Rounded
50expx017 exp  0.0000001    ->  1.000000  Inexact Rounded
51expx018 exp  0.0000003    ->  1.000000  Inexact Rounded
52expx019 exp  0.0000004    ->  1.000000  Inexact Rounded
53expx020 exp  0.0000005    ->  1.000001  Inexact Rounded
54expx021 exp  0.0000008    ->  1.000001  Inexact Rounded
55expx022 exp  0.0000009    ->  1.000001  Inexact Rounded
56expx023 exp  0.0000010    ->  1.000001  Inexact Rounded
57expx024 exp  0.0000011    ->  1.000001  Inexact Rounded
58expx025 exp  0.00000009   ->  1.000000  Inexact Rounded
59expx026 exp  0.00000005   ->  1.000000  Inexact Rounded
60expx027 exp  0.00000004   ->  1.000000  Inexact Rounded
61expx028 exp  0.00000001   ->  1.000000  Inexact Rounded
62
63-- and some more zeros
64expx030 exp  0.00000000   ->  1
65expx031 exp  0E+100       ->  1
66expx032 exp  0E-100       ->  1
67expx033 exp -0.00000000   ->  1
68expx034 exp -0E+100       ->  1
69expx035 exp -0E-100       ->  1
70
71-- basic e=0, e=1, e=2, e=4, e>=8 cases
72precision:   7
73expx041 exp  1          ->  2.718282  Inexact Rounded
74expx042 exp -1          ->  0.3678794 Inexact Rounded
75expx043 exp  10         ->  22026.47  Inexact Rounded
76expx044 exp -10         ->  0.00004539993 Inexact Rounded
77expx045 exp  100        ->  2.688117E+43  Inexact Rounded
78expx046 exp -100        ->  3.720076E-44  Inexact Rounded
79expx047 exp  1000       ->  Infinity Overflow Inexact Rounded
80expx048 exp -1000       ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
81expx049 exp  100000000  ->  Infinity Overflow Inexact Rounded
82expx050 exp -100000000  ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
83
84-- miscellanea
85-- similar to 'VF bug' test, at 17, but with last digit corrected for decimal
86precision: 16
87expx055 exp -5.42410311287441459172E+2 -> 2.717658486884572E-236 Inexact Rounded
88--  result from NetRexx/Java prototype -> 2.7176584868845721117677929628617246054459644711108E-236
89--   result from Rexx (series) version -> 2.717658486884572111767792962861724605446E-236
90precision: 17
91expx056 exp -5.42410311287441459172E+2 -> 2.7176584868845721E-236 Inexact Rounded
92precision: 18
93expx057 exp -5.42410311287441459172E+2 -> 2.71765848688457211E-236 Inexact Rounded
94precision: 19
95expx058 exp -5.42410311287441459172E+2 -> 2.717658486884572112E-236 Inexact Rounded
96precision: 20
97expx059 exp -5.42410311287441459172E+2 -> 2.7176584868845721118E-236 Inexact Rounded
98
99-- rounding in areas of ..500.., ..499.., ..100.., ..999.. sequences
100precision:   50
101expx101 exp -9E-8 -> 0.99999991000000404999987850000273374995079250073811 Inexact Rounded
102precision:   31
103expx102 exp -9E-8 -> 0.9999999100000040499998785000027 Inexact Rounded
104precision:   30
105expx103 exp -9E-8 -> 0.999999910000004049999878500003  Inexact Rounded
106precision:   29
107expx104 exp -9E-8 -> 0.99999991000000404999987850000   Inexact Rounded
108precision:   28
109expx105 exp -9E-8 -> 0.9999999100000040499998785000    Inexact Rounded
110precision:   27
111expx106 exp -9E-8 -> 0.999999910000004049999878500     Inexact Rounded
112precision:   26
113expx107 exp -9E-8 -> 0.99999991000000404999987850      Inexact Rounded
114precision:   25
115expx108 exp -9E-8 -> 0.9999999100000040499998785       Inexact Rounded
116precision:   24
117expx109 exp -9E-8 -> 0.999999910000004049999879        Inexact Rounded
118precision:   23
119expx110 exp -9E-8 -> 0.99999991000000404999988         Inexact Rounded
120precision:   22
121expx111 exp -9E-8 -> 0.9999999100000040499999          Inexact Rounded
122precision:   21
123expx112 exp -9E-8 -> 0.999999910000004050000           Inexact Rounded
124precision:   20
125expx113 exp -9E-8 -> 0.99999991000000405000            Inexact Rounded
126precision:   19
127expx114 exp -9E-8 -> 0.9999999100000040500             Inexact Rounded
128precision:   18
129expx115 exp -9E-8 -> 0.999999910000004050              Inexact Rounded
130precision:   17
131expx116 exp -9E-8 -> 0.99999991000000405               Inexact Rounded
132precision:   16
133expx117 exp -9E-8 -> 0.9999999100000040                Inexact Rounded
134precision:   15
135expx118 exp -9E-8 -> 0.999999910000004                 Inexact Rounded
136precision:   14
137expx119 exp -9E-8 -> 0.99999991000000                  Inexact Rounded
138precision:   13
139expx120 exp -9E-8 -> 0.9999999100000                   Inexact Rounded
140precision:   12
141expx121 exp -9E-8 -> 0.999999910000                    Inexact Rounded
142precision:   11
143expx122 exp -9E-8 -> 0.99999991000                     Inexact Rounded
144precision:   10
145expx123 exp -9E-8 -> 0.9999999100                      Inexact Rounded
146precision:    9
147expx124 exp -9E-8 -> 0.999999910                       Inexact Rounded
148precision:    8
149expx125 exp -9E-8 -> 0.99999991                        Inexact Rounded
150precision:    7
151expx126 exp -9E-8 -> 0.9999999                         Inexact Rounded
152precision:    6
153expx127 exp -9E-8 -> 1.00000                           Inexact Rounded
154precision:    5
155expx128 exp -9E-8 -> 1.0000                            Inexact Rounded
156precision:    4
157expx129 exp -9E-8 -> 1.000                             Inexact Rounded
158precision:    3
159expx130 exp -9E-8 -> 1.00                              Inexact Rounded
160precision:    2
161expx131 exp -9E-8 -> 1.0                               Inexact Rounded
162precision:    1
163expx132 exp -9E-8 -> 1                                 Inexact Rounded
164
165
166-- sanity checks, with iteration counts [normalized so 0<=|x|<1]
167precision:   50
168
169expx210 exp 0 -> 1
170-- iterations: 2
171expx211 exp -1E-40 -> 0.99999999999999999999999999999999999999990000000000 Inexact Rounded
172-- iterations: 8
173expx212 exp -9E-7 -> 0.99999910000040499987850002733749507925073811240510 Inexact Rounded
174-- iterations: 6
175expx213 exp -9E-8 -> 0.99999991000000404999987850000273374995079250073811 Inexact Rounded
176-- iterations: 15
177expx214 exp -0.003 -> 0.99700449550337297601206623409756091074177480489845 Inexact Rounded
178-- iterations: 14
179expx215 exp -0.001 -> 0.99900049983337499166805535716765597470235590236008 Inexact Rounded
180-- iterations: 26
181expx216 exp -0.1 -> 0.90483741803595957316424905944643662119470536098040 Inexact Rounded
182-- iterations: 39
183expx217 exp -0.7 -> 0.49658530379140951470480009339752896170766716571182 Inexact Rounded
184-- iterations: 41
185expx218 exp -0.9 -> 0.40656965974059911188345423964562598783370337617038 Inexact Rounded
186-- iterations: 43
187expx219 exp -0.99 -> 0.37157669102204569053152411990820138691802885490501 Inexact Rounded
188-- iterations: 26
189expx220 exp -1 -> 0.36787944117144232159552377016146086744581113103177 Inexact Rounded
190-- iterations: 26
191expx221 exp -1.01 -> 0.36421897957152331975704629563734548959589139192482 Inexact Rounded
192-- iterations: 27
193expx222 exp -1.1 -> 0.33287108369807955328884690643131552161247952156921 Inexact Rounded
194-- iterations: 28
195expx223 exp -1.5 -> 0.22313016014842982893328047076401252134217162936108 Inexact Rounded
196-- iterations: 30
197expx224 exp -2 -> 0.13533528323661269189399949497248440340763154590958 Inexact Rounded
198-- iterations: 36
199expx225 exp -5 -> 0.0067379469990854670966360484231484242488495850273551 Inexact Rounded
200-- iterations: 26
201expx226 exp -10 -> 0.000045399929762484851535591515560550610237918088866565 Inexact Rounded
202-- iterations: 28
203expx227 exp -14 -> 8.3152871910356788406398514256526229460765836498457E-7 Inexact Rounded
204-- iterations: 29
205expx228 exp -15 -> 3.0590232050182578837147949770228963937082078081856E-7 Inexact Rounded
206-- iterations: 30
207expx233 exp 0 -> 1
208-- iterations: 2
209expx234 exp 1E-40 -> 1.0000000000000000000000000000000000000001000000000 Inexact Rounded
210-- iterations: 7
211expx235 exp 9E-7 -> 1.0000009000004050001215000273375049207507381125949 Inexact Rounded
212-- iterations: 6
213expx236 exp 9E-8 -> 1.0000000900000040500001215000027337500492075007381 Inexact Rounded
214-- iterations: 15
215expx237 exp 0.003 -> 1.0030045045033770260129340913489002053318727195619 Inexact Rounded
216-- iterations: 13
217expx238 exp 0.001 -> 1.0010005001667083416680557539930583115630762005807 Inexact Rounded
218-- iterations: 25
219expx239 exp 0.1 -> 1.1051709180756476248117078264902466682245471947375 Inexact Rounded
220-- iterations: 38
221expx240 exp 0.7 -> 2.0137527074704765216245493885830652700175423941459 Inexact Rounded
222-- iterations: 41
223expx241 exp 0.9 -> 2.4596031111569496638001265636024706954217723064401 Inexact Rounded
224-- iterations: 42
225expx242 exp 0.99 -> 2.6912344723492622890998794040710139721802931841030 Inexact Rounded
226-- iterations: 26
227expx243 exp 1 -> 2.7182818284590452353602874713526624977572470937000 Inexact Rounded
228-- iterations: 26
229expx244 exp 1.01 -> 2.7456010150169164939897763166603876240737508195960 Inexact Rounded
230-- iterations: 26
231expx245 exp 1.1 -> 3.0041660239464331120584079535886723932826810260163 Inexact Rounded
232-- iterations: 28
233expx246 exp 1.5 -> 4.4816890703380648226020554601192758190057498683697 Inexact Rounded
234-- iterations: 29
235expx247 exp 2 -> 7.3890560989306502272304274605750078131803155705518 Inexact Rounded
236-- iterations: 36
237expx248 exp 5 -> 148.41315910257660342111558004055227962348766759388 Inexact Rounded
238-- iterations: 26
239expx249 exp 10 -> 22026.465794806716516957900645284244366353512618557 Inexact Rounded
240-- iterations: 28
241expx250 exp 14 -> 1202604.2841647767777492367707678594494124865433761 Inexact Rounded
242-- iterations: 28
243expx251 exp 15 -> 3269017.3724721106393018550460917213155057385438200 Inexact Rounded
244-- iterations: 29
245
246-- a biggie [result verified 3 ways]
247precision: 250
248expx260 exp 1 -> 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921817413596629043572900334295260595630738132328627943490763233829880753195251019011573834187930702154089149934884167509244761460668 Inexact Rounded
249
250-- extreme range boundaries
251precision:   16
252maxExponent: 999999
253minExponent: -999999
254-- Ntiny boundary
255expx290 exp  -2302618.022332529 -> 0E-1000014 Underflow Subnormal Inexact Rounded Clamped
256expx291 exp  -2302618.022332528 -> 1E-1000014 Underflow Subnormal Inexact Rounded
257-- Nmax/10 and Nmax boundary
258expx292 exp  2302582.790408952 -> 9.999999993100277E+999998  Inexact Rounded
259expx293 exp  2302582.790408953 -> 1.000000000310028E+999999  Inexact Rounded
260expx294 exp  2302585.092993946 -> 9.999999003159870E+999999 Inexact Rounded
261expx295 exp  2302585.092994036 -> 9.999999903159821E+999999 Inexact Rounded
262expx296 exp  2302585.092994045 -> 9.999999993159820E+999999 Inexact Rounded
263expx297 exp  2302585.092994046 -> Infinity Overflow         Inexact Rounded
264
265-- 0<-x<<1 effects
266precision:    30
267expx320 exp -4.9999999999999E-8 -> 0.999999950000001250000979166617 Inexact Rounded
268expx321 exp -5.0000000000000E-8 -> 0.999999950000001249999979166667 Inexact Rounded
269expx322 exp -5.0000000000001E-8 -> 0.999999950000001249998979166717 Inexact Rounded
270precision:    20
271expx323 exp -4.9999999999999E-8 -> 0.99999995000000125000 Inexact Rounded
272expx324 exp -5.0000000000000E-8 -> 0.99999995000000125000 Inexact Rounded
273expx325 exp -5.0000000000001E-8 -> 0.99999995000000125000 Inexact Rounded
274precision:    14
275expx326 exp -4.9999999999999E-8 -> 0.99999995000000 Inexact Rounded
276expx327 exp -5.0000000000000E-8 -> 0.99999995000000 Inexact Rounded
277expx328 exp -5.0000000000001E-8 -> 0.99999995000000 Inexact Rounded
278-- overprecise and 0<-x<<1
279precision:    8
280expx330 exp -4.9999999999999E-8 -> 0.99999995       Inexact Rounded
281expx331 exp -5.0000000000000E-8 -> 0.99999995       Inexact Rounded
282expx332 exp -5.0000000000001E-8 -> 0.99999995       Inexact Rounded
283precision:    7
284expx333 exp -4.9999999999999E-8 -> 1.000000         Inexact Rounded
285expx334 exp -5.0000000000000E-8 -> 1.000000         Inexact Rounded
286expx335 exp -5.0000000000001E-8 -> 1.000000         Inexact Rounded
287precision:    3
288expx336 exp -4.9999999999999E-8 -> 1.00             Inexact Rounded
289expx337 exp -5.0000000000000E-8 -> 1.00             Inexact Rounded
290expx338 exp -5.0000000000001E-8 -> 1.00             Inexact Rounded
291
292-- 0<x<<1 effects
293precision:    30
294expx340 exp  4.9999999999999E-8 -> 1.00000005000000124999902083328  Inexact Rounded
295expx341 exp  5.0000000000000E-8 -> 1.00000005000000125000002083333  Inexact Rounded
296expx342 exp  5.0000000000001E-8 -> 1.00000005000000125000102083338  Inexact Rounded
297precision:    20
298expx343 exp  4.9999999999999E-8 -> 1.0000000500000012500  Inexact Rounded
299expx344 exp  5.0000000000000E-8 -> 1.0000000500000012500  Inexact Rounded
300expx345 exp  5.0000000000001E-8 -> 1.0000000500000012500  Inexact Rounded
301precision:    14
302expx346 exp  4.9999999999999E-8 -> 1.0000000500000  Inexact Rounded
303expx347 exp  5.0000000000000E-8 -> 1.0000000500000  Inexact Rounded
304expx348 exp  5.0000000000001E-8 -> 1.0000000500000  Inexact Rounded
305-- overprecise and 0<x<<1
306precision:    8
307expx350 exp  4.9999999999999E-8 -> 1.0000001        Inexact Rounded
308expx351 exp  5.0000000000000E-8 -> 1.0000001        Inexact Rounded
309expx352 exp  5.0000000000001E-8 -> 1.0000001        Inexact Rounded
310precision:    7
311expx353 exp  4.9999999999999E-8 -> 1.000000         Inexact Rounded
312expx354 exp  5.0000000000000E-8 -> 1.000000         Inexact Rounded
313expx355 exp  5.0000000000001E-8 -> 1.000000         Inexact Rounded
314precision:    3
315expx356 exp  4.9999999999999E-8 -> 1.00             Inexact Rounded
316expx357 exp  5.0000000000000E-8 -> 1.00             Inexact Rounded
317expx358 exp  5.0000000000001E-8 -> 1.00             Inexact Rounded
318
319-- cases near 1              --  1 2345678901234567890
320precision:    20
321expx401 exp 0.99999999999996  -> 2.7182818284589365041  Inexact Rounded
322expx402 exp 0.99999999999997  -> 2.7182818284589636869  Inexact Rounded
323expx403 exp 0.99999999999998  -> 2.7182818284589908697  Inexact Rounded
324expx404 exp 0.99999999999999  -> 2.7182818284590180525  Inexact Rounded
325expx405 exp 1.0000000000000   -> 2.7182818284590452354  Inexact Rounded
326expx406 exp 1.0000000000001   -> 2.7182818284593170635  Inexact Rounded
327expx407 exp 1.0000000000002   -> 2.7182818284595888917  Inexact Rounded
328precision:    14
329expx411 exp 0.99999999999996  -> 2.7182818284589  Inexact Rounded
330expx412 exp 0.99999999999997  -> 2.7182818284590  Inexact Rounded
331expx413 exp 0.99999999999998  -> 2.7182818284590  Inexact Rounded
332expx414 exp 0.99999999999999  -> 2.7182818284590  Inexact Rounded
333expx415 exp 1.0000000000000   -> 2.7182818284590  Inexact Rounded
334expx416 exp 1.0000000000001   -> 2.7182818284593  Inexact Rounded
335expx417 exp 1.0000000000002   -> 2.7182818284596  Inexact Rounded
336-- overprecise...
337precision:    7
338expx421 exp 0.99999999999996  -> 2.718282         Inexact Rounded
339expx422 exp 0.99999999999997  -> 2.718282         Inexact Rounded
340expx423 exp 0.99999999999998  -> 2.718282         Inexact Rounded
341expx424 exp 0.99999999999999  -> 2.718282         Inexact Rounded
342expx425 exp 1.0000000000001   -> 2.718282         Inexact Rounded
343expx426 exp 1.0000000000002   -> 2.718282         Inexact Rounded
344expx427 exp 1.0000000000003   -> 2.718282         Inexact Rounded
345precision:    2
346expx431 exp 0.99999999999996  -> 2.7              Inexact Rounded
347expx432 exp 0.99999999999997  -> 2.7              Inexact Rounded
348expx433 exp 0.99999999999998  -> 2.7              Inexact Rounded
349expx434 exp 0.99999999999999  -> 2.7              Inexact Rounded
350expx435 exp 1.0000000000001   -> 2.7              Inexact Rounded
351expx436 exp 1.0000000000002   -> 2.7              Inexact Rounded
352expx437 exp 1.0000000000003   -> 2.7              Inexact Rounded
353
354-- basics at low precisions
355precision: 3
356expx501 exp  -Infinity     -> 0
357expx502 exp  -10           -> 0.0000454   Inexact Rounded
358expx503 exp  -1            -> 0.368       Inexact Rounded
359expx504 exp   0            -> 1
360expx505 exp  -0            -> 1
361expx506 exp   1            -> 2.72        Inexact Rounded
362expx507 exp   0.693147181  -> 2.00        Inexact Rounded
363expx508 exp   10           -> 2.20E+4     Inexact Rounded
364expx509 exp  +Infinity     -> Infinity
365precision: 2
366expx511 exp  -Infinity     -> 0
367expx512 exp  -10           -> 0.000045    Inexact Rounded
368expx513 exp  -1            -> 0.37        Inexact Rounded
369expx514 exp   0            -> 1
370expx515 exp  -0            -> 1
371expx516 exp   1            -> 2.7         Inexact Rounded
372expx517 exp   0.693147181  -> 2.0         Inexact Rounded
373expx518 exp   10           -> 2.2E+4      Inexact Rounded
374expx519 exp  +Infinity     -> Infinity
375precision: 1
376expx521 exp  -Infinity     -> 0
377expx522 exp  -10           -> 0.00005     Inexact Rounded
378expx523 exp  -1            -> 0.4         Inexact Rounded
379expx524 exp   0            -> 1
380expx525 exp  -0            -> 1
381expx526 exp   1            -> 3           Inexact Rounded
382expx527 exp   0.693147181  -> 2           Inexact Rounded
383expx528 exp   10           -> 2E+4        Inexact Rounded
384expx529 exp  +Infinity     -> Infinity
385
386-- overflows, including some overprecise borderlines
387precision:   7
388maxExponent: 384
389minExponent: -383
390expx701 exp  1000000000  -> Infinity Overflow Inexact Rounded
391expx702 exp  100000000   -> Infinity Overflow Inexact Rounded
392expx703 exp  10000000    -> Infinity Overflow Inexact Rounded
393expx704 exp  1000000     -> Infinity Overflow Inexact Rounded
394expx705 exp  100000      -> Infinity Overflow Inexact Rounded
395expx706 exp  10000       -> Infinity Overflow Inexact Rounded
396expx707 exp  1000        -> Infinity Overflow Inexact Rounded
397expx708 exp  886.4952608 -> Infinity Overflow Inexact Rounded
398expx709 exp  886.4952607 -> 9.999999E+384 Inexact Rounded
399expx710 exp  886.49527   -> Infinity Overflow Inexact Rounded
400expx711 exp  886.49526   -> 9.999992E+384 Inexact Rounded
401precision:   16
402expx721 exp  886.4952608027075883 -> Infinity Overflow Inexact Rounded
403expx722 exp  886.4952608027075882 -> 9.999999999999999E+384 Inexact Rounded
404expx723 exp  886.49526080270759   -> Infinity Overflow Inexact Rounded
405expx724 exp  886.49526080270758   -> 9.999999999999917E+384 Inexact Rounded
406expx725 exp  886.4952608027076    -> Infinity Overflow Inexact Rounded
407expx726 exp  886.4952608027075    -> 9.999999999999117E+384 Inexact Rounded
408-- and by special request ...
409precision:   15
410expx731 exp  886.495260802708     -> Infinity Overflow Inexact Rounded
411expx732 exp  886.495260802707     -> 9.99999999999412E+384 Inexact Rounded
412expx733 exp  886.495260802706     -> 9.99999999998412E+384 Inexact Rounded
413maxExponent: 999
414minExponent: -999
415expx735 exp  2302.58509299405    -> Infinity Overflow Inexact Rounded
416expx736 exp  2302.58509299404    -> 9.99999999994316E+999 Inexact Rounded
417expx737 exp  2302.58509299403    -> 9.99999999984316E+999 Inexact Rounded
418
419-- subnormals and underflows, including underflow-to-zero edge point
420precision:   7
421maxExponent: 384
422minExponent: -383
423expx751 exp -1000000000   ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
424expx752 exp -100000000    ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
425expx753 exp -10000000     ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
426expx754 exp -1000000      ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
427expx755 exp -100000       ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
428expx756 exp -10000        ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
429expx757 exp -1000         ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
430expx758 exp -881.89009    ->  1.000001E-383 Inexact Rounded
431expx759 exp -881.8901     ->  9.99991E-384  Inexact Rounded Underflow Subnormal
432expx760 exp -885          ->  4.4605E-385   Inexact Rounded Underflow Subnormal
433expx761 exp -888          ->  2.221E-386    Inexact Rounded Underflow Subnormal
434expx762 exp -890          ->  3.01E-387     Inexact Rounded Underflow Subnormal
435expx763 exp -892.9        ->  1.7E-388      Inexact Rounded Underflow Subnormal
436expx764 exp -893          ->  1.5E-388      Inexact Rounded Underflow Subnormal
437expx765 exp -893.5        ->  9E-389        Inexact Rounded Underflow Subnormal
438expx766 exp -895.7056     ->  1E-389        Inexact Rounded Underflow Subnormal
439expx769 exp -895.8        ->  1E-389        Inexact Rounded Underflow Subnormal
440expx770 exp -895.73       ->  1E-389        Inexact Rounded Underflow Subnormal
441expx771 exp -896.3987     ->  1E-389        Inexact Rounded Underflow Subnormal
442expx772 exp -896.3988     ->  0E-389        Inexact Rounded Underflow Subnormal Clamped
443expx773 exp -898.0081     ->  0E-389        Inexact Rounded Underflow Subnormal Clamped
444expx774 exp -898.0082     ->  0E-389        Inexact Rounded Underflow Subnormal Clamped
445
446-- special values
447maxexponent: 999
448minexponent: -999
449expx820 exp   Inf    -> Infinity
450expx821 exp  -Inf    -> 0
451expx822 exp   NaN    -> NaN
452expx823 exp  sNaN    -> NaN Invalid_operation
453-- propagating NaNs
454expx824 exp  sNaN123 ->  NaN123 Invalid_operation
455expx825 exp -sNaN321 -> -NaN321 Invalid_operation
456expx826 exp   NaN456 ->  NaN456
457expx827 exp  -NaN654 -> -NaN654
458expx828 exp   NaN1   ->  NaN1
459
460-- Invalid operations due to restrictions
461-- [next two probably skipped by most test harnesses]
462precision: 100000000
463expx901 exp  -Infinity     -> NaN Invalid_context
464precision:  99999999
465expx902 exp  -Infinity     -> NaN Invalid_context
466
467precision: 9
468maxExponent:   1000000
469minExponent:   -999999
470expx903 exp  -Infinity     -> NaN Invalid_context
471maxExponent:    999999
472minExponent:   -999999
473expx904 exp  -Infinity     -> 0
474maxExponent:    999999
475minExponent:  -1000000
476expx905 exp  -Infinity     -> NaN Invalid_context
477maxExponent:    999999
478minExponent:   -999998
479expx906 exp  -Infinity     -> 0
480
481--
482maxExponent: 384
483minExponent: -383
484precision:   16
485rounding:    half_even
486
487-- Null test
488expx900 exp  # -> NaN Invalid_operation
489
490
491-- Randoms P=50, within 0-999
492Precision: 50
493maxExponent: 384
494minExponent: -383
495expx1501 exp 656.35397950590285612266095596539934213943872885728  -> 1.1243757610640319783611178528839652672062820040314E+285 Inexact Rounded
496expx1502 exp 0.93620571093652800225038550600780322831236082781471 -> 2.5502865130986176689199711857825771311178046842009 Inexact Rounded
497expx1503 exp 0.00000000000000008340785856601514714183373874105791 -> 1.0000000000000000834078585660151506202691740252512 Inexact Rounded
498expx1504 exp 0.00009174057262887789625745574686545163168788456203 -> 1.0000917447809239005146722341251524081006051473273 Inexact Rounded
499expx1505 exp 33.909116897973797735657751591014926629051117541243  -> 532773181025002.03543618901306726495870476617232229 Inexact Rounded
500expx1506 exp 0.00000740470413004406592124575295278456936809587311 -> 1.0000074047315449333590066395670306135567889210814 Inexact Rounded
501expx1507 exp 0.00000000000124854922222108802453746922483071445492 -> 1.0000000000012485492222218674621176239911424968263 Inexact Rounded
502expx1508 exp 4.1793280674155659794286951159430651258356014391382  -> 65.321946520147199404199787811336860087975118278185 Inexact Rounded
503expx1509 exp 485.43595745460655893746179890255529919221550201686  -> 6.6398403920459617255950476953129377459845366585463E+210 Inexact Rounded
504expx1510 exp 0.00000000003547259806590856032527875157830328156597 -> 1.0000000000354725980665377129320589406715000685515 Inexact Rounded
505expx1511 exp 0.00000000000000759621497339104047930616478635042678 -> 1.0000000000000075962149733910693305471257715463887 Inexact Rounded
506expx1512 exp 9.7959168821760339304571595474480640286072720233796  -> 17960.261146042955179164303653412650751681436352437 Inexact Rounded
507expx1513 exp 0.00000000566642006258290526783901451194943164535581 -> 1.0000000056664200786370634609832438815665249347650 Inexact Rounded
508expx1514 exp 741.29888791134298194088827572374718940925820027354  -> 8.7501694006317332808128946666402622432064923198731E+321 Inexact Rounded
509expx1515 exp 032.75573003552517668808529099897153710887014947935  -> 168125196578678.17725841108617955904425345631092339 Inexact Rounded
510expx1516 exp 42.333700726429333308594265553422902463737399437644  -> 2428245675864172475.4681119493045657797309369672012 Inexact Rounded
511expx1517 exp 0.00000000000000559682616876491888197609158802835798 -> 1.0000000000000055968261687649345442076732739577049 Inexact Rounded
512expx1518 exp 0.00000000000080703688668280193584758300973549486312 -> 1.0000000000008070368866831275901158164321867914342 Inexact Rounded
513expx1519 exp 640.72396012796509482382712891709072570653606838251  -> 1.8318094990683394229304133068983914236995326891045E+278 Inexact Rounded
514expx1520 exp 0.00000000000000509458922167631071416948112219512224 -> 1.0000000000000050945892216763236915891499324358556 Inexact Rounded
515expx1521 exp 6.7670394314315206378625221583973414660727960241395  -> 868.73613012822031367806248697092884415119568271315 Inexact Rounded
516expx1522 exp 04.823217407412963506638267226891024138054783122548  -> 124.36457929588837129731821077586705505565904205366 Inexact Rounded
517expx1523 exp 193.51307878701196403991208482520115359690106143615  -> 1.1006830872854715677390914655452261550768957576034E+84 Inexact Rounded
518expx1524 exp 5.7307749038303650539200345901210497015617393970463  -> 308.20800743106843083522721523715645950574866495196 Inexact Rounded
519expx1525 exp 0.00000000000095217825199797965200541169123743500267 -> 1.0000000000009521782519984329737172007991390381273 Inexact Rounded
520expx1526 exp 0.00027131440949183370966393682617930153495028919140 -> 1.0002713512185751022906058160480606598754913607364 Inexact Rounded
521expx1527 exp 0.00000000064503059114680682343002315662069272707123 -> 1.0000000006450305913548390552323517403613135496633 Inexact Rounded
522expx1528 exp 0.00000000000000095616643506527288866235238548440593 -> 1.0000000000000009561664350652733457894781582009094 Inexact Rounded
523expx1529 exp 0.00000000000000086449942811678650244459550252743433 -> 1.0000000000000008644994281167868761242261096529986 Inexact Rounded
524expx1530 exp 0.06223488355635359965683053157729204988381887621850 -> 1.0642122813392406657789688931838919323826250630831 Inexact Rounded
525expx1531 exp 0.00000400710807804429435502657131912308680674057053 -> 1.0000040071161065125925620890019319832127863559260 Inexact Rounded
526expx1532 exp 85.522796894744576211573232055494551429297878413017  -> 13870073686404228452757799770251085177.853337368935 Inexact Rounded
527expx1533 exp 9.1496720811363678696938036379756663548353399954363  -> 9411.3537122832743386783597629161763057370034495157 Inexact Rounded
528expx1534 exp 8.2215705240788294472944382056330516738577785177942  -> 3720.3406813383076953899654701615084425598377758189 Inexact Rounded
529expx1535 exp 0.00000000015772064569640613142823203726821076239561 -> 1.0000000001577206457088440324683315788358926129830 Inexact Rounded
530expx1536 exp 0.58179346473959531432624153576883440625538017532480 -> 1.7892445018275360163797022372655837188423194863605 Inexact Rounded
531expx1537 exp 33.555726197149525061455517784870570470833498096559  -> 374168069896324.62578073148993526626307095854407952 Inexact Rounded
532expx1538 exp 9.7898079803906215094140010009583375537259810398659  -> 17850.878119912208888217100998019986634620368538426 Inexact Rounded
533expx1539 exp 89.157697327174521542502447953032536541038636966347  -> 525649152320166503771224149330448089550.67293829227 Inexact Rounded
534expx1540 exp 25.022947600123328912029051897171319573322888514885  -> 73676343442.952517824345431437683153304645851960524 Inexact Rounded
535
536-- exp(1) at 34
537Precision: 34
538expx1200 exp 1 -> 2.718281828459045235360287471352662 Inexact Rounded
539
540-- Randoms P=34, within 0-999
541Precision: 34
542maxExponent: 6144
543minExponent: -6143
544expx1201 exp 309.5948855821510212996700645087188  -> 2.853319692901387521201738015050724E+134 Inexact Rounded
545expx1202 exp 9.936543068706211420422803962680164  -> 20672.15839203171877476511093276022 Inexact Rounded
546expx1203 exp 6.307870323881505684429839491707908  -> 548.8747777054637296137277391754665 Inexact Rounded
547expx1204 exp 0.0003543281389438420535201308282503 -> 1.000354390920573746164733350843155 Inexact Rounded
548expx1205 exp 0.0000037087453363918375598394920229 -> 1.000003708752213796324841920189323 Inexact Rounded
549expx1206 exp 0.0020432312687512438040222444116585 -> 1.002045320088164826013561630975308 Inexact Rounded
550expx1207 exp 6.856313340032177672550343216129586  -> 949.8587981604144147983589660524396 Inexact Rounded
551expx1208 exp 0.0000000000402094928333815643326418 -> 1.000000000040209492834189965989612 Inexact Rounded
552expx1209 exp 0.0049610784722412117632647003545839 -> 1.004973404997901987039589029277833 Inexact Rounded
553expx1210 exp 0.0000891471883724066909746786702686 -> 1.000089151162101085412780088266699 Inexact Rounded
554expx1211 exp 08.59979170376061890684723211112566  -> 5430.528314920905714615339273738097 Inexact Rounded
555expx1212 exp 9.473117039341003854872778112752590  -> 13005.36234331224953460055897913917 Inexact Rounded
556expx1213 exp 0.0999060724692207648429969999310118 -> 1.105067116975190602296052700726802 Inexact Rounded
557expx1214 exp 0.0000000927804533555877884082269247 -> 1.000000092780457659694183954740772 Inexact Rounded
558expx1215 exp 0.0376578583872889916298772818265677 -> 1.038375900489771946477857818447556 Inexact Rounded
559expx1216 exp 261.6896411697539524911536116712307  -> 4.470613562127465095241600174941460E+113 Inexact Rounded
560expx1217 exp 0.0709997423269162980875824213889626 -> 1.073580949235407949417814485533172 Inexact Rounded
561expx1218 exp 0.0000000444605583295169895235658731 -> 1.000000044460559317887627657593900 Inexact Rounded
562expx1219 exp 0.0000021224072854777512281369815185 -> 1.000002122409537785687390631070906 Inexact Rounded
563expx1220 exp 547.5174462574156885473558485475052  -> 6.078629247383807942612114579728672E+237 Inexact Rounded
564expx1221 exp 0.0000009067598041615192002339844670 -> 1.000000906760215268314680115374387 Inexact Rounded
565expx1222 exp 0.0316476500308065365803455533244603 -> 1.032153761880187977658387961769034 Inexact Rounded
566expx1223 exp 84.46160530377645101833996706384473  -> 4.799644995897968383503269871697856E+36 Inexact Rounded
567expx1224 exp 0.0000000000520599740290848018904145 -> 1.000000000052059974030439922338393 Inexact Rounded
568expx1225 exp 0.0000006748530640093620665651726708 -> 1.000000674853291722742292331812997 Inexact Rounded
569expx1226 exp 0.0000000116853119761042020507916169 -> 1.000000011685312044377460306165203 Inexact Rounded
570expx1227 exp 0.0022593818094258636727616886693280 -> 1.002261936135876893707094845543461 Inexact Rounded
571expx1228 exp 0.0029398857673478912249856509667517 -> 1.002944211469495086813087651287012 Inexact Rounded
572expx1229 exp 0.7511480029928802775376270557636963 -> 2.119431734510320169806976569366789 Inexact Rounded
573expx1230 exp 174.9431952176750671150886423048447  -> 9.481222305374955011464619468044051E+75 Inexact Rounded
574expx1231 exp 0.0000810612451694136129199895164424 -> 1.000081064530720924186615149646920 Inexact Rounded
575expx1232 exp 51.06888989702669288180946272499035  -> 15098613888619165073959.89896018749 Inexact Rounded
576expx1233 exp 0.0000000005992887599437093651494510 -> 1.000000000599288760123282874082758 Inexact Rounded
577expx1234 exp 714.8549046761054856311108828903972  -> 2.867744544891081117381595080480784E+310 Inexact Rounded
578expx1235 exp 0.0000000004468247802990643645607110 -> 1.000000000446824780398890556720233 Inexact Rounded
579expx1236 exp 831.5818151589890366323551672043709  -> 1.417077409182624969435938062261655E+361 Inexact Rounded
580expx1237 exp 0.0000000006868323825179605747108044 -> 1.000000000686832382753829935602454 Inexact Rounded
581expx1238 exp 0.0000001306740266408976840228440255 -> 1.000000130674035178748675187648098 Inexact Rounded
582expx1239 exp 0.3182210609022267704811502412335163 -> 1.374680115667798185758927247894859 Inexact Rounded
583expx1240 exp 0.0147741234179104437440264644295501 -> 1.014883800239950682628277534839222 Inexact Rounded
584
585-- Randoms P=16, within 0-99
586Precision: 16
587maxExponent: 384
588minExponent: -383
589expx1101 exp 8.473011527013724  -> 4783.900643969246 Inexact Rounded
590expx1102 exp 0.0000055753022764 -> 1.000005575317818 Inexact Rounded
591expx1103 exp 0.0000323474114482 -> 1.000032347934631 Inexact Rounded
592expx1104 exp 64.54374138544166  -> 1.073966476173531E+28 Inexact Rounded
593expx1105 exp 90.47203246416569  -> 1.956610887250643E+39 Inexact Rounded
594expx1106 exp 9.299931532342757  -> 10937.27033325227 Inexact Rounded
595expx1107 exp 8.759678437852203  -> 6372.062234495381 Inexact Rounded
596expx1108 exp 0.0000931755127172 -> 1.000093179853690 Inexact Rounded
597expx1109 exp 0.0000028101158373 -> 1.000002810119786 Inexact Rounded
598expx1110 exp 0.0000008008130919 -> 1.000000800813413 Inexact Rounded
599expx1111 exp 8.339771722299049  -> 4187.133803081878 Inexact Rounded
600expx1112 exp 0.0026140497995474 -> 1.002617469406750 Inexact Rounded
601expx1113 exp 0.7478033356261771 -> 2.112354781975418 Inexact Rounded
602expx1114 exp 51.77663761827966  -> 3.064135801120365E+22 Inexact Rounded
603expx1115 exp 0.1524989783061012 -> 1.164741272084955 Inexact Rounded
604expx1116 exp 0.0066298798669219 -> 1.006651906170791 Inexact Rounded
605expx1117 exp 9.955141865534960  -> 21060.23334287038 Inexact Rounded
606expx1118 exp 92.34503059198483  -> 1.273318993481226E+40 Inexact Rounded
607expx1119 exp 0.0000709388677346 -> 1.000070941383956 Inexact Rounded
608expx1120 exp 79.12883036433204  -> 2.318538899389243E+34 Inexact Rounded
609expx1121 exp 0.0000090881548873 -> 1.000009088196185 Inexact Rounded
610expx1122 exp 0.0424828809603411 -> 1.043398194245720 Inexact Rounded
611expx1123 exp 0.8009035891427416 -> 2.227552811933310 Inexact Rounded
612expx1124 exp 8.825786167283102  -> 6807.540455289995 Inexact Rounded
613expx1125 exp 1.535457249746275  -> 4.643448260146849 Inexact Rounded
614expx1126 exp 69.02254254355800  -> 9.464754500670653E+29 Inexact Rounded
615expx1127 exp 0.0007050554368713 -> 1.000705304046880 Inexact Rounded
616expx1128 exp 0.0000081206549504 -> 1.000008120687923 Inexact Rounded
617expx1129 exp 0.621774854641137  -> 1.862230298554903 Inexact Rounded
618expx1130 exp 3.847629031404354  -> 46.88177613568203 Inexact Rounded
619expx1131 exp 24.81250184697732  -> 59694268456.19966 Inexact Rounded
620expx1132 exp 5.107546500516044  -> 165.2643809755670 Inexact Rounded
621expx1133 exp 79.17810943951986  -> 2.435656372541360E+34 Inexact Rounded
622expx1134 exp 0.0051394695667015 -> 1.005152699295301 Inexact Rounded
623expx1135 exp 57.44504488501725  -> 8.872908566929688E+24 Inexact Rounded
624expx1136 exp 0.0000508388968036 -> 1.000050840189122 Inexact Rounded
625expx1137 exp 69.71309932148997  -> 1.888053740693541E+30 Inexact Rounded
626expx1138 exp 0.0064183412981502 -> 1.006438982988835 Inexact Rounded
627expx1139 exp 9.346991220814677  -> 11464.27802035082 Inexact Rounded
628expx1140 exp 33.09087139999152  -> 235062229168763.5 Inexact Rounded
629
630-- Randoms P=7, within 0-9
631Precision: 7
632maxExponent: 96
633minExponent: -95
634expx1001 exp 2.395441  -> 10.97304 Inexact Rounded
635expx1002 exp 0.6406779 -> 1.897767 Inexact Rounded
636expx1003 exp 0.5618218 -> 1.753865 Inexact Rounded
637expx1004 exp 3.055120  -> 21.22373 Inexact Rounded
638expx1005 exp 1.536792  -> 4.649650 Inexact Rounded
639expx1006 exp 0.0801591 -> 1.083459 Inexact Rounded
640expx1007 exp 0.0966875 -> 1.101516 Inexact Rounded
641expx1008 exp 0.0646761 -> 1.066813 Inexact Rounded
642expx1009 exp 0.0095670 -> 1.009613 Inexact Rounded
643expx1010 exp 2.956859  -> 19.23745 Inexact Rounded
644expx1011 exp 7.504679  -> 1816.522 Inexact Rounded
645expx1012 exp 0.0045259 -> 1.004536 Inexact Rounded
646expx1013 exp 3.810071  -> 45.15364 Inexact Rounded
647expx1014 exp 1.502390  -> 4.492413 Inexact Rounded
648expx1015 exp 0.0321523 -> 1.032675 Inexact Rounded
649expx1016 exp 0.0057214 -> 1.005738 Inexact Rounded
650expx1017 exp 9.811445  -> 18241.33 Inexact Rounded
651expx1018 exp 3.245249  -> 25.66810 Inexact Rounded
652expx1019 exp 0.3189742 -> 1.375716 Inexact Rounded
653expx1020 exp 0.8621610 -> 2.368273 Inexact Rounded
654expx1021 exp 0.0122511 -> 1.012326 Inexact Rounded
655expx1022 exp 2.202088  -> 9.043877 Inexact Rounded
656expx1023 exp 8.778203  -> 6491.202 Inexact Rounded
657expx1024 exp 0.1896279 -> 1.208800 Inexact Rounded
658expx1025 exp 0.4510947 -> 1.570030 Inexact Rounded
659expx1026 exp 0.276413  -> 1.318392 Inexact Rounded
660expx1027 exp 4.490067  -> 89.12742 Inexact Rounded
661expx1028 exp 0.0439786 -> 1.044960 Inexact Rounded
662expx1029 exp 0.8168245 -> 2.263301 Inexact Rounded
663expx1030 exp 0.0391658 -> 1.039943 Inexact Rounded
664expx1031 exp 9.261816  -> 10528.24 Inexact Rounded
665expx1032 exp 9.611186  -> 14930.87 Inexact Rounded
666expx1033 exp 9.118125  -> 9119.087 Inexact Rounded
667expx1034 exp 9.469083  -> 12953.00 Inexact Rounded
668expx1035 exp 0.0499983 -> 1.051269 Inexact Rounded
669expx1036 exp 0.0050746 -> 1.005087 Inexact Rounded
670expx1037 exp 0.0014696 -> 1.001471 Inexact Rounded
671expx1038 exp 9.138494  -> 9306.739 Inexact Rounded
672expx1039 exp 0.0065436 -> 1.006565 Inexact Rounded
673expx1040 exp 0.7284803 -> 2.071930 Inexact Rounded
674
675