------------------------------------------------------------------------
-- exp.decTest -- decimal natural exponentiation                      --
-- Copyright (c) IBM Corporation, 2005, 2008.  All rights reserved.   --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases"     --
-- at http://www2.hursley.ibm.com/decimal for the description of      --
-- these testcases.                                                   --
--                                                                    --
-- These testcases are experimental ('beta' versions), and they       --
-- may contain errors.  They are offered on an as-is basis.  In       --
-- particular, achieving the same results as the tests here is not    --
-- a guarantee that an implementation complies with any Standard      --
-- or specification.  The tests are not exhaustive.                   --
--                                                                    --
-- Please send comments, suggestions, and corrections to the author:  --
--   Mike Cowlishaw, IBM Fellow                                       --
--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
--   mfc@uk.ibm.com                                                   --
------------------------------------------------------------------------
version: 2.59

-- Tests of the exponential function.  Currently all testcases here
-- show results which are correctly rounded (within <= 0.5 ulp).

extended:    1
precision:   9
rounding:    half_even
maxExponent: 384
minexponent: -383

-- basics (examples in specificiation, etc.)
expx001 exp  -Infinity     -> 0
expx002 exp  -10           -> 0.0000453999298 Inexact Rounded
expx003 exp  -1            -> 0.367879441 Inexact Rounded
expx004 exp   0            -> 1
expx005 exp  -0            -> 1
expx006 exp   1            -> 2.71828183  Inexact Rounded
expx007 exp   0.693147181  -> 2.00000000  Inexact Rounded
expx008 exp   10           -> 22026.4658  Inexact Rounded
expx009 exp  +Infinity     -> Infinity

-- tiny edge cases
precision:   7
expx011 exp  0.1          ->  1.105171  Inexact Rounded
expx012 exp  0.01         ->  1.010050  Inexact Rounded
expx013 exp  0.001        ->  1.001001  Inexact Rounded
expx014 exp  0.0001       ->  1.000100  Inexact Rounded
expx015 exp  0.00001      ->  1.000010  Inexact Rounded
expx016 exp  0.000001     ->  1.000001  Inexact Rounded
expx017 exp  0.0000001    ->  1.000000  Inexact Rounded
expx018 exp  0.0000003    ->  1.000000  Inexact Rounded
expx019 exp  0.0000004    ->  1.000000  Inexact Rounded
expx020 exp  0.0000005    ->  1.000001  Inexact Rounded
expx021 exp  0.0000008    ->  1.000001  Inexact Rounded
expx022 exp  0.0000009    ->  1.000001  Inexact Rounded
expx023 exp  0.0000010    ->  1.000001  Inexact Rounded
expx024 exp  0.0000011    ->  1.000001  Inexact Rounded
expx025 exp  0.00000009   ->  1.000000  Inexact Rounded
expx026 exp  0.00000005   ->  1.000000  Inexact Rounded
expx027 exp  0.00000004   ->  1.000000  Inexact Rounded
expx028 exp  0.00000001   ->  1.000000  Inexact Rounded

-- and some more zeros
expx030 exp  0.00000000   ->  1
expx031 exp  0E+100       ->  1
expx032 exp  0E-100       ->  1
expx033 exp -0.00000000   ->  1
expx034 exp -0E+100       ->  1
expx035 exp -0E-100       ->  1

-- basic e=0, e=1, e=2, e=4, e>=8 cases
precision:   7
expx041 exp  1          ->  2.718282  Inexact Rounded
expx042 exp -1          ->  0.3678794 Inexact Rounded
expx043 exp  10         ->  22026.47  Inexact Rounded
expx044 exp -10         ->  0.00004539993 Inexact Rounded
expx045 exp  100        ->  2.688117E+43  Inexact Rounded
expx046 exp -100        ->  3.720076E-44  Inexact Rounded
expx047 exp  1000       ->  Infinity Overflow Inexact Rounded
expx048 exp -1000       ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
expx049 exp  100000000  ->  Infinity Overflow Inexact Rounded
expx050 exp -100000000  ->  0E-389 Underflow Inexact Rounded Clamped Subnormal

-- miscellanea
-- similar to 'VF bug' test, at 17, but with last digit corrected for decimal
precision: 16
expx055 exp -5.42410311287441459172E+2 -> 2.717658486884572E-236 Inexact Rounded
--  result from NetRexx/Java prototype -> 2.7176584868845721117677929628617246054459644711108E-236
--   result from Rexx (series) version -> 2.717658486884572111767792962861724605446E-236
precision: 17
expx056 exp -5.42410311287441459172E+2 -> 2.7176584868845721E-236 Inexact Rounded
precision: 18
expx057 exp -5.42410311287441459172E+2 -> 2.71765848688457211E-236 Inexact Rounded
precision: 19
expx058 exp -5.42410311287441459172E+2 -> 2.717658486884572112E-236 Inexact Rounded
precision: 20
expx059 exp -5.42410311287441459172E+2 -> 2.7176584868845721118E-236 Inexact Rounded

-- rounding in areas of ..500.., ..499.., ..100.., ..999.. sequences
precision:   50
expx101 exp -9E-8 -> 0.99999991000000404999987850000273374995079250073811 Inexact Rounded
precision:   31
expx102 exp -9E-8 -> 0.9999999100000040499998785000027 Inexact Rounded
precision:   30
expx103 exp -9E-8 -> 0.999999910000004049999878500003  Inexact Rounded
precision:   29
expx104 exp -9E-8 -> 0.99999991000000404999987850000   Inexact Rounded
precision:   28
expx105 exp -9E-8 -> 0.9999999100000040499998785000    Inexact Rounded
precision:   27
expx106 exp -9E-8 -> 0.999999910000004049999878500     Inexact Rounded
precision:   26
expx107 exp -9E-8 -> 0.99999991000000404999987850      Inexact Rounded
precision:   25
expx108 exp -9E-8 -> 0.9999999100000040499998785       Inexact Rounded
precision:   24
expx109 exp -9E-8 -> 0.999999910000004049999879        Inexact Rounded
precision:   23
expx110 exp -9E-8 -> 0.99999991000000404999988         Inexact Rounded
precision:   22
expx111 exp -9E-8 -> 0.9999999100000040499999          Inexact Rounded
precision:   21
expx112 exp -9E-8 -> 0.999999910000004050000           Inexact Rounded
precision:   20
expx113 exp -9E-8 -> 0.99999991000000405000            Inexact Rounded
precision:   19
expx114 exp -9E-8 -> 0.9999999100000040500             Inexact Rounded
precision:   18
expx115 exp -9E-8 -> 0.999999910000004050              Inexact Rounded
precision:   17
expx116 exp -9E-8 -> 0.99999991000000405               Inexact Rounded
precision:   16
expx117 exp -9E-8 -> 0.9999999100000040                Inexact Rounded
precision:   15
expx118 exp -9E-8 -> 0.999999910000004                 Inexact Rounded
precision:   14
expx119 exp -9E-8 -> 0.99999991000000                  Inexact Rounded
precision:   13
expx120 exp -9E-8 -> 0.9999999100000                   Inexact Rounded
precision:   12
expx121 exp -9E-8 -> 0.999999910000                    Inexact Rounded
precision:   11
expx122 exp -9E-8 -> 0.99999991000                     Inexact Rounded
precision:   10
expx123 exp -9E-8 -> 0.9999999100                      Inexact Rounded
precision:    9
expx124 exp -9E-8 -> 0.999999910                       Inexact Rounded
precision:    8
expx125 exp -9E-8 -> 0.99999991                        Inexact Rounded
precision:    7
expx126 exp -9E-8 -> 0.9999999                         Inexact Rounded
precision:    6
expx127 exp -9E-8 -> 1.00000                           Inexact Rounded
precision:    5
expx128 exp -9E-8 -> 1.0000                            Inexact Rounded
precision:    4
expx129 exp -9E-8 -> 1.000                             Inexact Rounded
precision:    3
expx130 exp -9E-8 -> 1.00                              Inexact Rounded
precision:    2
expx131 exp -9E-8 -> 1.0                               Inexact Rounded
precision:    1
expx132 exp -9E-8 -> 1                                 Inexact Rounded


-- sanity checks, with iteration counts [normalized so 0<=|x|<1]
precision:   50

expx210 exp 0 -> 1
-- iterations: 2
expx211 exp -1E-40 -> 0.99999999999999999999999999999999999999990000000000 Inexact Rounded
-- iterations: 8
expx212 exp -9E-7 -> 0.99999910000040499987850002733749507925073811240510 Inexact Rounded
-- iterations: 6
expx213 exp -9E-8 -> 0.99999991000000404999987850000273374995079250073811 Inexact Rounded
-- iterations: 15
expx214 exp -0.003 -> 0.99700449550337297601206623409756091074177480489845 Inexact Rounded
-- iterations: 14
expx215 exp -0.001 -> 0.99900049983337499166805535716765597470235590236008 Inexact Rounded
-- iterations: 26
expx216 exp -0.1 -> 0.90483741803595957316424905944643662119470536098040 Inexact Rounded
-- iterations: 39
expx217 exp -0.7 -> 0.49658530379140951470480009339752896170766716571182 Inexact Rounded
-- iterations: 41
expx218 exp -0.9 -> 0.40656965974059911188345423964562598783370337617038 Inexact Rounded
-- iterations: 43
expx219 exp -0.99 -> 0.37157669102204569053152411990820138691802885490501 Inexact Rounded
-- iterations: 26
expx220 exp -1 -> 0.36787944117144232159552377016146086744581113103177 Inexact Rounded
-- iterations: 26
expx221 exp -1.01 -> 0.36421897957152331975704629563734548959589139192482 Inexact Rounded
-- iterations: 27
expx222 exp -1.1 -> 0.33287108369807955328884690643131552161247952156921 Inexact Rounded
-- iterations: 28
expx223 exp -1.5 -> 0.22313016014842982893328047076401252134217162936108 Inexact Rounded
-- iterations: 30
expx224 exp -2 -> 0.13533528323661269189399949497248440340763154590958 Inexact Rounded
-- iterations: 36
expx225 exp -5 -> 0.0067379469990854670966360484231484242488495850273551 Inexact Rounded
-- iterations: 26
expx226 exp -10 -> 0.000045399929762484851535591515560550610237918088866565 Inexact Rounded
-- iterations: 28
expx227 exp -14 -> 8.3152871910356788406398514256526229460765836498457E-7 Inexact Rounded
-- iterations: 29
expx228 exp -15 -> 3.0590232050182578837147949770228963937082078081856E-7 Inexact Rounded
-- iterations: 30
expx233 exp 0 -> 1
-- iterations: 2
expx234 exp 1E-40 -> 1.0000000000000000000000000000000000000001000000000 Inexact Rounded
-- iterations: 7
expx235 exp 9E-7 -> 1.0000009000004050001215000273375049207507381125949 Inexact Rounded
-- iterations: 6
expx236 exp 9E-8 -> 1.0000000900000040500001215000027337500492075007381 Inexact Rounded
-- iterations: 15
expx237 exp 0.003 -> 1.0030045045033770260129340913489002053318727195619 Inexact Rounded
-- iterations: 13
expx238 exp 0.001 -> 1.0010005001667083416680557539930583115630762005807 Inexact Rounded
-- iterations: 25
expx239 exp 0.1 -> 1.1051709180756476248117078264902466682245471947375 Inexact Rounded
-- iterations: 38
expx240 exp 0.7 -> 2.0137527074704765216245493885830652700175423941459 Inexact Rounded
-- iterations: 41
expx241 exp 0.9 -> 2.4596031111569496638001265636024706954217723064401 Inexact Rounded
-- iterations: 42
expx242 exp 0.99 -> 2.6912344723492622890998794040710139721802931841030 Inexact Rounded
-- iterations: 26
expx243 exp 1 -> 2.7182818284590452353602874713526624977572470937000 Inexact Rounded
-- iterations: 26
expx244 exp 1.01 -> 2.7456010150169164939897763166603876240737508195960 Inexact Rounded
-- iterations: 26
expx245 exp 1.1 -> 3.0041660239464331120584079535886723932826810260163 Inexact Rounded
-- iterations: 28
expx246 exp 1.5 -> 4.4816890703380648226020554601192758190057498683697 Inexact Rounded
-- iterations: 29
expx247 exp 2 -> 7.3890560989306502272304274605750078131803155705518 Inexact Rounded
-- iterations: 36
expx248 exp 5 -> 148.41315910257660342111558004055227962348766759388 Inexact Rounded
-- iterations: 26
expx249 exp 10 -> 22026.465794806716516957900645284244366353512618557 Inexact Rounded
-- iterations: 28
expx250 exp 14 -> 1202604.2841647767777492367707678594494124865433761 Inexact Rounded
-- iterations: 28
expx251 exp 15 -> 3269017.3724721106393018550460917213155057385438200 Inexact Rounded
-- iterations: 29

-- a biggie [result verified 3 ways]
precision: 250
expx260 exp 1 -> 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921817413596629043572900334295260595630738132328627943490763233829880753195251019011573834187930702154089149934884167509244761460668 Inexact Rounded

-- extreme range boundaries
precision:   16
maxExponent: 999999
minExponent: -999999
-- Ntiny boundary
expx290 exp  -2302618.022332529 -> 0E-1000014 Underflow Subnormal Inexact Rounded Clamped
expx291 exp  -2302618.022332528 -> 1E-1000014 Underflow Subnormal Inexact Rounded
-- Nmax/10 and Nmax boundary
expx292 exp  2302582.790408952 -> 9.999999993100277E+999998  Inexact Rounded
expx293 exp  2302582.790408953 -> 1.000000000310028E+999999  Inexact Rounded
expx294 exp  2302585.092993946 -> 9.999999003159870E+999999 Inexact Rounded
expx295 exp  2302585.092994036 -> 9.999999903159821E+999999 Inexact Rounded
expx296 exp  2302585.092994045 -> 9.999999993159820E+999999 Inexact Rounded
expx297 exp  2302585.092994046 -> Infinity Overflow         Inexact Rounded

-- 0<-x<<1 effects
precision:    30
expx320 exp -4.9999999999999E-8 -> 0.999999950000001250000979166617 Inexact Rounded
expx321 exp -5.0000000000000E-8 -> 0.999999950000001249999979166667 Inexact Rounded
expx322 exp -5.0000000000001E-8 -> 0.999999950000001249998979166717 Inexact Rounded
precision:    20
expx323 exp -4.9999999999999E-8 -> 0.99999995000000125000 Inexact Rounded
expx324 exp -5.0000000000000E-8 -> 0.99999995000000125000 Inexact Rounded
expx325 exp -5.0000000000001E-8 -> 0.99999995000000125000 Inexact Rounded
precision:    14
expx326 exp -4.9999999999999E-8 -> 0.99999995000000 Inexact Rounded
expx327 exp -5.0000000000000E-8 -> 0.99999995000000 Inexact Rounded
expx328 exp -5.0000000000001E-8 -> 0.99999995000000 Inexact Rounded
-- overprecise and 0<-x<<1
precision:    8
expx330 exp -4.9999999999999E-8 -> 0.99999995       Inexact Rounded
expx331 exp -5.0000000000000E-8 -> 0.99999995       Inexact Rounded
expx332 exp -5.0000000000001E-8 -> 0.99999995       Inexact Rounded
precision:    7
expx333 exp -4.9999999999999E-8 -> 1.000000         Inexact Rounded
expx334 exp -5.0000000000000E-8 -> 1.000000         Inexact Rounded
expx335 exp -5.0000000000001E-8 -> 1.000000         Inexact Rounded
precision:    3
expx336 exp -4.9999999999999E-8 -> 1.00             Inexact Rounded
expx337 exp -5.0000000000000E-8 -> 1.00             Inexact Rounded
expx338 exp -5.0000000000001E-8 -> 1.00             Inexact Rounded

-- 0<x<<1 effects
precision:    30
expx340 exp  4.9999999999999E-8 -> 1.00000005000000124999902083328  Inexact Rounded
expx341 exp  5.0000000000000E-8 -> 1.00000005000000125000002083333  Inexact Rounded
expx342 exp  5.0000000000001E-8 -> 1.00000005000000125000102083338  Inexact Rounded
precision:    20
expx343 exp  4.9999999999999E-8 -> 1.0000000500000012500  Inexact Rounded
expx344 exp  5.0000000000000E-8 -> 1.0000000500000012500  Inexact Rounded
expx345 exp  5.0000000000001E-8 -> 1.0000000500000012500  Inexact Rounded
precision:    14
expx346 exp  4.9999999999999E-8 -> 1.0000000500000  Inexact Rounded
expx347 exp  5.0000000000000E-8 -> 1.0000000500000  Inexact Rounded
expx348 exp  5.0000000000001E-8 -> 1.0000000500000  Inexact Rounded
-- overprecise and 0<x<<1
precision:    8
expx350 exp  4.9999999999999E-8 -> 1.0000001        Inexact Rounded
expx351 exp  5.0000000000000E-8 -> 1.0000001        Inexact Rounded
expx352 exp  5.0000000000001E-8 -> 1.0000001        Inexact Rounded
precision:    7
expx353 exp  4.9999999999999E-8 -> 1.000000         Inexact Rounded
expx354 exp  5.0000000000000E-8 -> 1.000000         Inexact Rounded
expx355 exp  5.0000000000001E-8 -> 1.000000         Inexact Rounded
precision:    3
expx356 exp  4.9999999999999E-8 -> 1.00             Inexact Rounded
expx357 exp  5.0000000000000E-8 -> 1.00             Inexact Rounded
expx358 exp  5.0000000000001E-8 -> 1.00             Inexact Rounded

-- cases near 1              --  1 2345678901234567890
precision:    20
expx401 exp 0.99999999999996  -> 2.7182818284589365041  Inexact Rounded
expx402 exp 0.99999999999997  -> 2.7182818284589636869  Inexact Rounded
expx403 exp 0.99999999999998  -> 2.7182818284589908697  Inexact Rounded
expx404 exp 0.99999999999999  -> 2.7182818284590180525  Inexact Rounded
expx405 exp 1.0000000000000   -> 2.7182818284590452354  Inexact Rounded
expx406 exp 1.0000000000001   -> 2.7182818284593170635  Inexact Rounded
expx407 exp 1.0000000000002   -> 2.7182818284595888917  Inexact Rounded
precision:    14
expx411 exp 0.99999999999996  -> 2.7182818284589  Inexact Rounded
expx412 exp 0.99999999999997  -> 2.7182818284590  Inexact Rounded
expx413 exp 0.99999999999998  -> 2.7182818284590  Inexact Rounded
expx414 exp 0.99999999999999  -> 2.7182818284590  Inexact Rounded
expx415 exp 1.0000000000000   -> 2.7182818284590  Inexact Rounded
expx416 exp 1.0000000000001   -> 2.7182818284593  Inexact Rounded
expx417 exp 1.0000000000002   -> 2.7182818284596  Inexact Rounded
-- overprecise...
precision:    7
expx421 exp 0.99999999999996  -> 2.718282         Inexact Rounded
expx422 exp 0.99999999999997  -> 2.718282         Inexact Rounded
expx423 exp 0.99999999999998  -> 2.718282         Inexact Rounded
expx424 exp 0.99999999999999  -> 2.718282         Inexact Rounded
expx425 exp 1.0000000000001   -> 2.718282         Inexact Rounded
expx426 exp 1.0000000000002   -> 2.718282         Inexact Rounded
expx427 exp 1.0000000000003   -> 2.718282         Inexact Rounded
precision:    2
expx431 exp 0.99999999999996  -> 2.7              Inexact Rounded
expx432 exp 0.99999999999997  -> 2.7              Inexact Rounded
expx433 exp 0.99999999999998  -> 2.7              Inexact Rounded
expx434 exp 0.99999999999999  -> 2.7              Inexact Rounded
expx435 exp 1.0000000000001   -> 2.7              Inexact Rounded
expx436 exp 1.0000000000002   -> 2.7              Inexact Rounded
expx437 exp 1.0000000000003   -> 2.7              Inexact Rounded

-- basics at low precisions
precision: 3
expx501 exp  -Infinity     -> 0
expx502 exp  -10           -> 0.0000454   Inexact Rounded
expx503 exp  -1            -> 0.368       Inexact Rounded
expx504 exp   0            -> 1
expx505 exp  -0            -> 1
expx506 exp   1            -> 2.72        Inexact Rounded
expx507 exp   0.693147181  -> 2.00        Inexact Rounded
expx508 exp   10           -> 2.20E+4     Inexact Rounded
expx509 exp  +Infinity     -> Infinity
precision: 2
expx511 exp  -Infinity     -> 0
expx512 exp  -10           -> 0.000045    Inexact Rounded
expx513 exp  -1            -> 0.37        Inexact Rounded
expx514 exp   0            -> 1
expx515 exp  -0            -> 1
expx516 exp   1            -> 2.7         Inexact Rounded
expx517 exp   0.693147181  -> 2.0         Inexact Rounded
expx518 exp   10           -> 2.2E+4      Inexact Rounded
expx519 exp  +Infinity     -> Infinity
precision: 1
expx521 exp  -Infinity     -> 0
expx522 exp  -10           -> 0.00005     Inexact Rounded
expx523 exp  -1            -> 0.4         Inexact Rounded
expx524 exp   0            -> 1
expx525 exp  -0            -> 1
expx526 exp   1            -> 3           Inexact Rounded
expx527 exp   0.693147181  -> 2           Inexact Rounded
expx528 exp   10           -> 2E+4        Inexact Rounded
expx529 exp  +Infinity     -> Infinity

-- overflows, including some overprecise borderlines
precision:   7
maxExponent: 384
minExponent: -383
expx701 exp  1000000000  -> Infinity Overflow Inexact Rounded
expx702 exp  100000000   -> Infinity Overflow Inexact Rounded
expx703 exp  10000000    -> Infinity Overflow Inexact Rounded
expx704 exp  1000000     -> Infinity Overflow Inexact Rounded
expx705 exp  100000      -> Infinity Overflow Inexact Rounded
expx706 exp  10000       -> Infinity Overflow Inexact Rounded
expx707 exp  1000        -> Infinity Overflow Inexact Rounded
expx708 exp  886.4952608 -> Infinity Overflow Inexact Rounded
expx709 exp  886.4952607 -> 9.999999E+384 Inexact Rounded
expx710 exp  886.49527   -> Infinity Overflow Inexact Rounded
expx711 exp  886.49526   -> 9.999992E+384 Inexact Rounded
precision:   16
expx721 exp  886.4952608027075883 -> Infinity Overflow Inexact Rounded
expx722 exp  886.4952608027075882 -> 9.999999999999999E+384 Inexact Rounded
expx723 exp  886.49526080270759   -> Infinity Overflow Inexact Rounded
expx724 exp  886.49526080270758   -> 9.999999999999917E+384 Inexact Rounded
expx725 exp  886.4952608027076    -> Infinity Overflow Inexact Rounded
expx726 exp  886.4952608027075    -> 9.999999999999117E+384 Inexact Rounded
-- and by special request ...
precision:   15
expx731 exp  886.495260802708     -> Infinity Overflow Inexact Rounded
expx732 exp  886.495260802707     -> 9.99999999999412E+384 Inexact Rounded
expx733 exp  886.495260802706     -> 9.99999999998412E+384 Inexact Rounded
maxExponent: 999
minExponent: -999
expx735 exp  2302.58509299405    -> Infinity Overflow Inexact Rounded
expx736 exp  2302.58509299404    -> 9.99999999994316E+999 Inexact Rounded
expx737 exp  2302.58509299403    -> 9.99999999984316E+999 Inexact Rounded

-- subnormals and underflows, including underflow-to-zero edge point
precision:   7
maxExponent: 384
minExponent: -383
expx751 exp -1000000000   ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
expx752 exp -100000000    ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
expx753 exp -10000000     ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
expx754 exp -1000000      ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
expx755 exp -100000       ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
expx756 exp -10000        ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
expx757 exp -1000         ->  0E-389 Underflow Inexact Rounded Clamped Subnormal
expx758 exp -881.89009    ->  1.000001E-383 Inexact Rounded
expx759 exp -881.8901     ->  9.99991E-384  Inexact Rounded Underflow Subnormal
expx760 exp -885          ->  4.4605E-385   Inexact Rounded Underflow Subnormal
expx761 exp -888          ->  2.221E-386    Inexact Rounded Underflow Subnormal
expx762 exp -890          ->  3.01E-387     Inexact Rounded Underflow Subnormal
expx763 exp -892.9        ->  1.7E-388      Inexact Rounded Underflow Subnormal
expx764 exp -893          ->  1.5E-388      Inexact Rounded Underflow Subnormal
expx765 exp -893.5        ->  9E-389        Inexact Rounded Underflow Subnormal
expx766 exp -895.7056     ->  1E-389        Inexact Rounded Underflow Subnormal
expx769 exp -895.8        ->  1E-389        Inexact Rounded Underflow Subnormal
expx770 exp -895.73       ->  1E-389        Inexact Rounded Underflow Subnormal
expx771 exp -896.3987     ->  1E-389        Inexact Rounded Underflow Subnormal
expx772 exp -896.3988     ->  0E-389        Inexact Rounded Underflow Subnormal Clamped
expx773 exp -898.0081     ->  0E-389        Inexact Rounded Underflow Subnormal Clamped
expx774 exp -898.0082     ->  0E-389        Inexact Rounded Underflow Subnormal Clamped

-- special values
maxexponent: 999
minexponent: -999
expx820 exp   Inf    -> Infinity
expx821 exp  -Inf    -> 0
expx822 exp   NaN    -> NaN
expx823 exp  sNaN    -> NaN Invalid_operation
-- propagating NaNs
expx824 exp  sNaN123 ->  NaN123 Invalid_operation
expx825 exp -sNaN321 -> -NaN321 Invalid_operation
expx826 exp   NaN456 ->  NaN456
expx827 exp  -NaN654 -> -NaN654
expx828 exp   NaN1   ->  NaN1

-- Invalid operations due to restrictions
-- [next two probably skipped by most test harnesses]
precision: 100000000
expx901 exp  -Infinity     -> NaN Invalid_context
precision:  99999999
expx902 exp  -Infinity     -> NaN Invalid_context

precision: 9
maxExponent:   1000000
minExponent:   -999999
expx903 exp  -Infinity     -> NaN Invalid_context
maxExponent:    999999
minExponent:   -999999
expx904 exp  -Infinity     -> 0
maxExponent:    999999
minExponent:  -1000000
expx905 exp  -Infinity     -> NaN Invalid_context
maxExponent:    999999
minExponent:   -999998
expx906 exp  -Infinity     -> 0

--
maxExponent: 384
minExponent: -383
precision:   16
rounding:    half_even

-- Null test
expx900 exp  # -> NaN Invalid_operation


-- Randoms P=50, within 0-999
Precision: 50
maxExponent: 384
minExponent: -383
expx1501 exp 656.35397950590285612266095596539934213943872885728  -> 1.1243757610640319783611178528839652672062820040314E+285 Inexact Rounded
expx1502 exp 0.93620571093652800225038550600780322831236082781471 -> 2.5502865130986176689199711857825771311178046842009 Inexact Rounded
expx1503 exp 0.00000000000000008340785856601514714183373874105791 -> 1.0000000000000000834078585660151506202691740252512 Inexact Rounded
expx1504 exp 0.00009174057262887789625745574686545163168788456203 -> 1.0000917447809239005146722341251524081006051473273 Inexact Rounded
expx1505 exp 33.909116897973797735657751591014926629051117541243  -> 532773181025002.03543618901306726495870476617232229 Inexact Rounded
expx1506 exp 0.00000740470413004406592124575295278456936809587311 -> 1.0000074047315449333590066395670306135567889210814 Inexact Rounded
expx1507 exp 0.00000000000124854922222108802453746922483071445492 -> 1.0000000000012485492222218674621176239911424968263 Inexact Rounded
expx1508 exp 4.1793280674155659794286951159430651258356014391382  -> 65.321946520147199404199787811336860087975118278185 Inexact Rounded
expx1509 exp 485.43595745460655893746179890255529919221550201686  -> 6.6398403920459617255950476953129377459845366585463E+210 Inexact Rounded
expx1510 exp 0.00000000003547259806590856032527875157830328156597 -> 1.0000000000354725980665377129320589406715000685515 Inexact Rounded
expx1511 exp 0.00000000000000759621497339104047930616478635042678 -> 1.0000000000000075962149733910693305471257715463887 Inexact Rounded
expx1512 exp 9.7959168821760339304571595474480640286072720233796  -> 17960.261146042955179164303653412650751681436352437 Inexact Rounded
expx1513 exp 0.00000000566642006258290526783901451194943164535581 -> 1.0000000056664200786370634609832438815665249347650 Inexact Rounded
expx1514 exp 741.29888791134298194088827572374718940925820027354  -> 8.7501694006317332808128946666402622432064923198731E+321 Inexact Rounded
expx1515 exp 032.75573003552517668808529099897153710887014947935  -> 168125196578678.17725841108617955904425345631092339 Inexact Rounded
expx1516 exp 42.333700726429333308594265553422902463737399437644  -> 2428245675864172475.4681119493045657797309369672012 Inexact Rounded
expx1517 exp 0.00000000000000559682616876491888197609158802835798 -> 1.0000000000000055968261687649345442076732739577049 Inexact Rounded
expx1518 exp 0.00000000000080703688668280193584758300973549486312 -> 1.0000000000008070368866831275901158164321867914342 Inexact Rounded
expx1519 exp 640.72396012796509482382712891709072570653606838251  -> 1.8318094990683394229304133068983914236995326891045E+278 Inexact Rounded
expx1520 exp 0.00000000000000509458922167631071416948112219512224 -> 1.0000000000000050945892216763236915891499324358556 Inexact Rounded
expx1521 exp 6.7670394314315206378625221583973414660727960241395  -> 868.73613012822031367806248697092884415119568271315 Inexact Rounded
expx1522 exp 04.823217407412963506638267226891024138054783122548  -> 124.36457929588837129731821077586705505565904205366 Inexact Rounded
expx1523 exp 193.51307878701196403991208482520115359690106143615  -> 1.1006830872854715677390914655452261550768957576034E+84 Inexact Rounded
expx1524 exp 5.7307749038303650539200345901210497015617393970463  -> 308.20800743106843083522721523715645950574866495196 Inexact Rounded
expx1525 exp 0.00000000000095217825199797965200541169123743500267 -> 1.0000000000009521782519984329737172007991390381273 Inexact Rounded
expx1526 exp 0.00027131440949183370966393682617930153495028919140 -> 1.0002713512185751022906058160480606598754913607364 Inexact Rounded
expx1527 exp 0.00000000064503059114680682343002315662069272707123 -> 1.0000000006450305913548390552323517403613135496633 Inexact Rounded
expx1528 exp 0.00000000000000095616643506527288866235238548440593 -> 1.0000000000000009561664350652733457894781582009094 Inexact Rounded
expx1529 exp 0.00000000000000086449942811678650244459550252743433 -> 1.0000000000000008644994281167868761242261096529986 Inexact Rounded
expx1530 exp 0.06223488355635359965683053157729204988381887621850 -> 1.0642122813392406657789688931838919323826250630831 Inexact Rounded
expx1531 exp 0.00000400710807804429435502657131912308680674057053 -> 1.0000040071161065125925620890019319832127863559260 Inexact Rounded
expx1532 exp 85.522796894744576211573232055494551429297878413017  -> 13870073686404228452757799770251085177.853337368935 Inexact Rounded
expx1533 exp 9.1496720811363678696938036379756663548353399954363  -> 9411.3537122832743386783597629161763057370034495157 Inexact Rounded
expx1534 exp 8.2215705240788294472944382056330516738577785177942  -> 3720.3406813383076953899654701615084425598377758189 Inexact Rounded
expx1535 exp 0.00000000015772064569640613142823203726821076239561 -> 1.0000000001577206457088440324683315788358926129830 Inexact Rounded
expx1536 exp 0.58179346473959531432624153576883440625538017532480 -> 1.7892445018275360163797022372655837188423194863605 Inexact Rounded
expx1537 exp 33.555726197149525061455517784870570470833498096559  -> 374168069896324.62578073148993526626307095854407952 Inexact Rounded
expx1538 exp 9.7898079803906215094140010009583375537259810398659  -> 17850.878119912208888217100998019986634620368538426 Inexact Rounded
expx1539 exp 89.157697327174521542502447953032536541038636966347  -> 525649152320166503771224149330448089550.67293829227 Inexact Rounded
expx1540 exp 25.022947600123328912029051897171319573322888514885  -> 73676343442.952517824345431437683153304645851960524 Inexact Rounded

-- exp(1) at 34
Precision: 34
expx1200 exp 1 -> 2.718281828459045235360287471352662 Inexact Rounded

-- Randoms P=34, within 0-999
Precision: 34
maxExponent: 6144
minExponent: -6143
expx1201 exp 309.5948855821510212996700645087188  -> 2.853319692901387521201738015050724E+134 Inexact Rounded
expx1202 exp 9.936543068706211420422803962680164  -> 20672.15839203171877476511093276022 Inexact Rounded
expx1203 exp 6.307870323881505684429839491707908  -> 548.8747777054637296137277391754665 Inexact Rounded
expx1204 exp 0.0003543281389438420535201308282503 -> 1.000354390920573746164733350843155 Inexact Rounded
expx1205 exp 0.0000037087453363918375598394920229 -> 1.000003708752213796324841920189323 Inexact Rounded
expx1206 exp 0.0020432312687512438040222444116585 -> 1.002045320088164826013561630975308 Inexact Rounded
expx1207 exp 6.856313340032177672550343216129586  -> 949.8587981604144147983589660524396 Inexact Rounded
expx1208 exp 0.0000000000402094928333815643326418 -> 1.000000000040209492834189965989612 Inexact Rounded
expx1209 exp 0.0049610784722412117632647003545839 -> 1.004973404997901987039589029277833 Inexact Rounded
expx1210 exp 0.0000891471883724066909746786702686 -> 1.000089151162101085412780088266699 Inexact Rounded
expx1211 exp 08.59979170376061890684723211112566  -> 5430.528314920905714615339273738097 Inexact Rounded
expx1212 exp 9.473117039341003854872778112752590  -> 13005.36234331224953460055897913917 Inexact Rounded
expx1213 exp 0.0999060724692207648429969999310118 -> 1.105067116975190602296052700726802 Inexact Rounded
expx1214 exp 0.0000000927804533555877884082269247 -> 1.000000092780457659694183954740772 Inexact Rounded
expx1215 exp 0.0376578583872889916298772818265677 -> 1.038375900489771946477857818447556 Inexact Rounded
expx1216 exp 261.6896411697539524911536116712307  -> 4.470613562127465095241600174941460E+113 Inexact Rounded
expx1217 exp 0.0709997423269162980875824213889626 -> 1.073580949235407949417814485533172 Inexact Rounded
expx1218 exp 0.0000000444605583295169895235658731 -> 1.000000044460559317887627657593900 Inexact Rounded
expx1219 exp 0.0000021224072854777512281369815185 -> 1.000002122409537785687390631070906 Inexact Rounded
expx1220 exp 547.5174462574156885473558485475052  -> 6.078629247383807942612114579728672E+237 Inexact Rounded
expx1221 exp 0.0000009067598041615192002339844670 -> 1.000000906760215268314680115374387 Inexact Rounded
expx1222 exp 0.0316476500308065365803455533244603 -> 1.032153761880187977658387961769034 Inexact Rounded
expx1223 exp 84.46160530377645101833996706384473  -> 4.799644995897968383503269871697856E+36 Inexact Rounded
expx1224 exp 0.0000000000520599740290848018904145 -> 1.000000000052059974030439922338393 Inexact Rounded
expx1225 exp 0.0000006748530640093620665651726708 -> 1.000000674853291722742292331812997 Inexact Rounded
expx1226 exp 0.0000000116853119761042020507916169 -> 1.000000011685312044377460306165203 Inexact Rounded
expx1227 exp 0.0022593818094258636727616886693280 -> 1.002261936135876893707094845543461 Inexact Rounded
expx1228 exp 0.0029398857673478912249856509667517 -> 1.002944211469495086813087651287012 Inexact Rounded
expx1229 exp 0.7511480029928802775376270557636963 -> 2.119431734510320169806976569366789 Inexact Rounded
expx1230 exp 174.9431952176750671150886423048447  -> 9.481222305374955011464619468044051E+75 Inexact Rounded
expx1231 exp 0.0000810612451694136129199895164424 -> 1.000081064530720924186615149646920 Inexact Rounded
expx1232 exp 51.06888989702669288180946272499035  -> 15098613888619165073959.89896018749 Inexact Rounded
expx1233 exp 0.0000000005992887599437093651494510 -> 1.000000000599288760123282874082758 Inexact Rounded
expx1234 exp 714.8549046761054856311108828903972  -> 2.867744544891081117381595080480784E+310 Inexact Rounded
expx1235 exp 0.0000000004468247802990643645607110 -> 1.000000000446824780398890556720233 Inexact Rounded
expx1236 exp 831.5818151589890366323551672043709  -> 1.417077409182624969435938062261655E+361 Inexact Rounded
expx1237 exp 0.0000000006868323825179605747108044 -> 1.000000000686832382753829935602454 Inexact Rounded
expx1238 exp 0.0000001306740266408976840228440255 -> 1.000000130674035178748675187648098 Inexact Rounded
expx1239 exp 0.3182210609022267704811502412335163 -> 1.374680115667798185758927247894859 Inexact Rounded
expx1240 exp 0.0147741234179104437440264644295501 -> 1.014883800239950682628277534839222 Inexact Rounded

-- Randoms P=16, within 0-99
Precision: 16
maxExponent: 384
minExponent: -383
expx1101 exp 8.473011527013724  -> 4783.900643969246 Inexact Rounded
expx1102 exp 0.0000055753022764 -> 1.000005575317818 Inexact Rounded
expx1103 exp 0.0000323474114482 -> 1.000032347934631 Inexact Rounded
expx1104 exp 64.54374138544166  -> 1.073966476173531E+28 Inexact Rounded
expx1105 exp 90.47203246416569  -> 1.956610887250643E+39 Inexact Rounded
expx1106 exp 9.299931532342757  -> 10937.27033325227 Inexact Rounded
expx1107 exp 8.759678437852203  -> 6372.062234495381 Inexact Rounded
expx1108 exp 0.0000931755127172 -> 1.000093179853690 Inexact Rounded
expx1109 exp 0.0000028101158373 -> 1.000002810119786 Inexact Rounded
expx1110 exp 0.0000008008130919 -> 1.000000800813413 Inexact Rounded
expx1111 exp 8.339771722299049  -> 4187.133803081878 Inexact Rounded
expx1112 exp 0.0026140497995474 -> 1.002617469406750 Inexact Rounded
expx1113 exp 0.7478033356261771 -> 2.112354781975418 Inexact Rounded
expx1114 exp 51.77663761827966  -> 3.064135801120365E+22 Inexact Rounded
expx1115 exp 0.1524989783061012 -> 1.164741272084955 Inexact Rounded
expx1116 exp 0.0066298798669219 -> 1.006651906170791 Inexact Rounded
expx1117 exp 9.955141865534960  -> 21060.23334287038 Inexact Rounded
expx1118 exp 92.34503059198483  -> 1.273318993481226E+40 Inexact Rounded
expx1119 exp 0.0000709388677346 -> 1.000070941383956 Inexact Rounded
expx1120 exp 79.12883036433204  -> 2.318538899389243E+34 Inexact Rounded
expx1121 exp 0.0000090881548873 -> 1.000009088196185 Inexact Rounded
expx1122 exp 0.0424828809603411 -> 1.043398194245720 Inexact Rounded
expx1123 exp 0.8009035891427416 -> 2.227552811933310 Inexact Rounded
expx1124 exp 8.825786167283102  -> 6807.540455289995 Inexact Rounded
expx1125 exp 1.535457249746275  -> 4.643448260146849 Inexact Rounded
expx1126 exp 69.02254254355800  -> 9.464754500670653E+29 Inexact Rounded
expx1127 exp 0.0007050554368713 -> 1.000705304046880 Inexact Rounded
expx1128 exp 0.0000081206549504 -> 1.000008120687923 Inexact Rounded
expx1129 exp 0.621774854641137  -> 1.862230298554903 Inexact Rounded
expx1130 exp 3.847629031404354  -> 46.88177613568203 Inexact Rounded
expx1131 exp 24.81250184697732  -> 59694268456.19966 Inexact Rounded
expx1132 exp 5.107546500516044  -> 165.2643809755670 Inexact Rounded
expx1133 exp 79.17810943951986  -> 2.435656372541360E+34 Inexact Rounded
expx1134 exp 0.0051394695667015 -> 1.005152699295301 Inexact Rounded
expx1135 exp 57.44504488501725  -> 8.872908566929688E+24 Inexact Rounded
expx1136 exp 0.0000508388968036 -> 1.000050840189122 Inexact Rounded
expx1137 exp 69.71309932148997  -> 1.888053740693541E+30 Inexact Rounded
expx1138 exp 0.0064183412981502 -> 1.006438982988835 Inexact Rounded
expx1139 exp 9.346991220814677  -> 11464.27802035082 Inexact Rounded
expx1140 exp 33.09087139999152  -> 235062229168763.5 Inexact Rounded

-- Randoms P=7, within 0-9
Precision: 7
maxExponent: 96
minExponent: -95
expx1001 exp 2.395441  -> 10.97304 Inexact Rounded
expx1002 exp 0.6406779 -> 1.897767 Inexact Rounded
expx1003 exp 0.5618218 -> 1.753865 Inexact Rounded
expx1004 exp 3.055120  -> 21.22373 Inexact Rounded
expx1005 exp 1.536792  -> 4.649650 Inexact Rounded
expx1006 exp 0.0801591 -> 1.083459 Inexact Rounded
expx1007 exp 0.0966875 -> 1.101516 Inexact Rounded
expx1008 exp 0.0646761 -> 1.066813 Inexact Rounded
expx1009 exp 0.0095670 -> 1.009613 Inexact Rounded
expx1010 exp 2.956859  -> 19.23745 Inexact Rounded
expx1011 exp 7.504679  -> 1816.522 Inexact Rounded
expx1012 exp 0.0045259 -> 1.004536 Inexact Rounded
expx1013 exp 3.810071  -> 45.15364 Inexact Rounded
expx1014 exp 1.502390  -> 4.492413 Inexact Rounded
expx1015 exp 0.0321523 -> 1.032675 Inexact Rounded
expx1016 exp 0.0057214 -> 1.005738 Inexact Rounded
expx1017 exp 9.811445  -> 18241.33 Inexact Rounded
expx1018 exp 3.245249  -> 25.66810 Inexact Rounded
expx1019 exp 0.3189742 -> 1.375716 Inexact Rounded
expx1020 exp 0.8621610 -> 2.368273 Inexact Rounded
expx1021 exp 0.0122511 -> 1.012326 Inexact Rounded
expx1022 exp 2.202088  -> 9.043877 Inexact Rounded
expx1023 exp 8.778203  -> 6491.202 Inexact Rounded
expx1024 exp 0.1896279 -> 1.208800 Inexact Rounded
expx1025 exp 0.4510947 -> 1.570030 Inexact Rounded
expx1026 exp 0.276413  -> 1.318392 Inexact Rounded
expx1027 exp 4.490067  -> 89.12742 Inexact Rounded
expx1028 exp 0.0439786 -> 1.044960 Inexact Rounded
expx1029 exp 0.8168245 -> 2.263301 Inexact Rounded
expx1030 exp 0.0391658 -> 1.039943 Inexact Rounded
expx1031 exp 9.261816  -> 10528.24 Inexact Rounded
expx1032 exp 9.611186  -> 14930.87 Inexact Rounded
expx1033 exp 9.118125  -> 9119.087 Inexact Rounded
expx1034 exp 9.469083  -> 12953.00 Inexact Rounded
expx1035 exp 0.0499983 -> 1.051269 Inexact Rounded
expx1036 exp 0.0050746 -> 1.005087 Inexact Rounded
expx1037 exp 0.0014696 -> 1.001471 Inexact Rounded
expx1038 exp 9.138494  -> 9306.739 Inexact Rounded
expx1039 exp 0.0065436 -> 1.006565 Inexact Rounded
expx1040 exp 0.7284803 -> 2.071930 Inexact Rounded

