Fix fma missing underflows and bad results for some subnormal results (bugs 14152, 14783)

Andreas Krebbel krebbel@linux.vnet.ibm.com
Tue Nov 6 13:50:00 GMT 2012


On 30/10/12 02:11, Joseph S. Myers wrote:

> Tested x86_64 (both multi-arch enabled, and multi-arch disabled) and
> x86.  Could someone test on sparc or s390 to confirm the ldbl-128
> changes work (there should be no ulps for any fma test)?

The last test-ldouble output file was incorrect - sorry. Here is the new one. There do not seem to
be FMA ULPs anymore. Thanks!

Bye,

-Andreas-
-------------- next part --------------
testing long double (without inline functions)
Failure: Test: expm1 (-79.0) == -0.9999999999999999999999999999999999509391
Result:
 is:         -1.00000000000000000000e+00  -0x1.00000000000000000000p+0
 should be:  -1.00000000000000000000e+00  -0x2.00000000000000000000p-1
 difference:  9.62964972193617926528e-35   0x1.00000000000000000000p-113
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x1.234566p-50 + 1.0 i) == 2.217530356103816369479108963807448194409e-31 + 6.821881769209202348667823902864283966959e-1 i
Result:
 is:          2.21753035610381636948e-31   0x1.1fda15f514f3bfccade0p-102
 should be:   2.21753035610381636948e-31   0x1.1fda15f514f3bfccade0p-102
 difference:  3.79822709830391949899e-65   0x1.00000000000000000000p-214
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x1.234566p-60 + 1.0 i) == 2.114801746467415208319767917450504756866e-37 + 6.821881769209206733143018621078368211515e-1 i
Result:
 is:          2.11480174646741520832e-37   0x1.1fda15f514f3bfccade0p-122
 should be:   2.11480174646741520832e-37   0x1.1fda15f514f3bfccade0p-122
 difference:  3.62227163153068494700e-71   0x1.00000000000000000000p-234
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Real part of: clog10 (0x1p-8189 + 1.0 i) == 1.168114274114528946314738738025008370069e-4931 + 6.821881769209206737428918127156778851051e-1 i: Exception "Underflow" set
Failure: Test: Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i) == 3.604093470239754109961125085078190708674e-5 + 4.824745078422174667425851670822596859720e-4 i
Result:
 is:          4.82474507842217466743e-04   0x1.f9e943b7a5f95a3f9b73p-12
 should be:   4.82474507842217466743e-04   0x1.f9e943b7a5f95a3f9b73p-12
 difference:  9.40395480657830006375e-38   0x1.00000000000000000000p-123
 ulp       :  2.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i) == 3.577293486783822178310971763308187385546e-5 + 3.897399639875661463735636919790792140598e-31 i
Result:
 is:          3.89739963987566146374e-31   0x1.f9e9515b7acdad7fab4ap-102
 should be:   3.89739963987566146374e-31   0x1.f9e9515b7acdad7fab4ap-102
 difference:  3.79822709830391949899e-65   0x1.00000000000000000000p-214
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i) == 1.150487028947346337782682105935961875822e-10 + 1.364376353381646356131680448946397884147 i
Result:
 is:          1.15048702894734633778e-10   0x1.f9fd52e93ee41be49c1dp-34
 should be:   1.15048702894734633778e-10   0x1.f9fd52e93ee41be49c1dp-34
 difference:  1.12103877145985365674e-44   0x1.00000000000000000000p-146
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i) == 1.150487026509145544402795327729455391948e-10 + 1.364376353841841347485783625431355770210 i
Result:
 is:          1.15048702650914554440e-10   0x1.f9fd52d741428d4c7c61p-34
 should be:   1.15048702650914554440e-10   0x1.f9fd52d741428d4c7c61p-34
 difference:  1.12103877145985365674e-44   0x1.00000000000000000000p-146
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i) == 4.285899851347756188767674032946882584784e-19 + 4.285899850759344225805480528847018395861e-19 i
Result:
 is:          4.28589985075934422581e-19   0x1.f9fd5fef6543bd620b2ap-62
 should be:   4.28589985075934422581e-19   0x1.f9fd5fef6543bd620b2ap-62
 difference:  4.17619485951905569709e-53   0x1.00000000000000000000p-174
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i) == 4.285899851347756186652871946325962330640e-19 + 4.611541215247321502041995872887317363241e-302 i
Result:
 is:          4.28589985134775618665e-19   0x1.f9fd5ff08f9ffaab164ep-62
 should be:   4.28589985134775618665e-19   0x1.f9fd5ff08f9ffaab164ep-62
 difference:  4.17619485951905569709e-53   0x1.00000000000000000000p-174
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i) == 4.285899851347756186652871946325962330640e-19 + 4.611541215247321502041995872887317363241e-302 i
Result:
 is:          4.61154121524732150204e-302   0x1.f9fd5fef6543bd620b2ap-1002
 should be:   4.61154121524732150204e-302   0x1.f9fd5fef6543bd620b2ap-1002
 difference:  4.49350087220633708218e-336   0x1.00000000000000000000p-1114
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i) == -2.588596909321764128428416045209904492216e-8 + 3.425979381266895667295625489912064603415e-31 i
Result:
 is:         -2.58859690932176412843e-08  -0x1.bcb7b230ca2a209eceb4p-26
 should be:  -2.58859690932176412843e-08  -0x1.bcb7b230ca2a209eceb4p-26
 difference:  2.86985925493722536125e-42   0x1.00000000000000000000p-138
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Real part of: clog10 (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i) == -2.354315103889861110220423157644627849164e-20 + 1.541165759405643564697852372112893034397e-4516 i: Exception "Underflow" set
Failure: Test: Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i) == -7.0781945783414996953799915941870192015212e-09 + 0.4005747524909781155537088181659175147564 i
Result:
 is:         -7.07819457834149969538e-09  -0x1.e668ea772958a12b185bp-28
 should be:  -7.07819457834149969538e-09  -0x1.e668ea772958a12b185bp-28
 difference:  7.17464813734306340313e-43   0x1.00000000000000000000p-140
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i
Result:
 is:          6.67372610539866143950e-09   0x1.ca9d6e66c52cfdee1d5fp-28
 should be:   6.67372610539866143950e-09   0x1.ca9d6e66c52cfdee1d5fp-28
 difference:  7.17464813734306340313e-43   0x1.00000000000000000000p-140
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i) == 6.6737261053986614395049481326819059203910e-09 + 0.5438241985991753781478398141908629586460 i
Result:
 is:          5.43824198599175378148e-01   0x1.1670201783841b10f1bdp-1
 should be:   5.43824198599175378148e-01   0x1.1670201783841b10f1bdp-1
 difference:  9.62964972193617926528e-35   0x1.00000000000000000000p-113
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i) == -1.7182001068739620267773842120965071561416e-11 + 0.3990121149225253562859800593935899629087 i
Result:
 is:          3.99012114922525356286e-01   0x1.9896a1c1333dae24d473p-2
 should be:   3.99012114922525356286e-01   0x1.9896a1c1333dae24d473p-2
 difference:  4.81482486096808963264e-35   0x1.00000000000000000000p-114
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i) == -1.9440841725722970687903291200493082253766e-13 + 0.5193774116724956222518530053006822210323 i
Result:
 is:          5.19377411672495622252e-01   0x1.09ebd60ad438ff7d5160p-1
 should be:   5.19377411672495622252e-01   0x1.09ebd60ad438ff7d5160p-1
 difference:  9.62964972193617926528e-35   0x1.00000000000000000000p-113
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i
Result:
 is:          1.62007014380946191173e-14   0x1.23d88c5e18591cb2142cp-46
 should be:   1.62007014380946191173e-14   0x1.23d88c5e18591cb2142cp-46
 difference:  2.73691106313440834165e-48   0x1.00000000000000000000p-158
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i) == 1.6200701438094619117335617123525612051457e-14 + 0.5049027913635038013499728086604870749732 i
Result:
 is:          5.04902791363503801350e-01   0x1.02829e612176e02f3370p-1
 should be:   5.04902791363503801350e-01   0x1.02829e612176e02f3370p-1
 difference:  9.62964972193617926528e-35   0x1.00000000000000000000p-113
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i) == 1.9312741086596516918394613098872836703188e-20 + 0.5231613813514771042838490538484014771862 i
Result:
 is:          1.93127410865965169184e-20   0x1.6cceaf759e7e5a57a049p-66
 should be:   1.93127410865965169184e-20   0x1.6cceaf759e7e5a57a049p-66
 difference:  2.61012178719940981068e-54   0x1.00000000000000000000p-178
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 2.3329549194675052736016290082882121135546e-26 + 0.4561756099441139182878993697611751382976 i
Result:
 is:          4.56175609944113918288e-01   0x1.d31fb2f7c5730b0284dcp-2
 should be:   4.56175609944113918288e-01   0x1.d31fb2f7c5730b0284dcp-2
 difference:  4.81482486096808963264e-35   0x1.00000000000000000000p-114
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 1.3918041236396763648388478552321724382899e-29 + 0.6263795733790237053262025311642907438291 i
Result:
 is:          1.39180412363967636484e-29   0x1.1a4a9a0ed30658326cbdp-96
 should be:   1.39180412363967636484e-29   0x1.1a4a9a0ed30658326cbdp-96
 difference:  2.43086534291450847935e-63   0x1.00000000000000000000p-208
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 3.6079845358966994996207055940336690133424e-30 + 0.5243112258263349992771652393178033846555 i
Result:
 is:          5.24311225826334999277e-01   0x1.0c72855fb316490199dep-1
 should be:   5.24311225826334999277e-01   0x1.0c72855fb316490199dep-1
 difference:  9.62964972193617926528e-35   0x1.00000000000000000000p-113
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i) == 4.4163015461643576961232672330852798804976e-31 + 0.3564851427422832755956993418877523303529 i
Result:
 is:          3.56485142742283275596e-01   0x1.6d0a70f65a1c4256c772p-2
 should be:   3.56485142742283275596e-01   0x1.6d0a70f65a1c4256c772p-2
 difference:  4.81482486096808963264e-35   0x1.00000000000000000000p-114
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i) == 2.2081507730821788480616336165447731164865e-32 + 0.5484039935757001196548030312819898864760 i
Result:
 is:          2.20815077308217884806e-32   0x1.ca9d6edd01c36a43be0dp-106
 should be:   2.20815077308217884806e-32   0x1.ca9d6edd01c36a43be0dp-106
 difference:  2.37389193643994968687e-66   0x1.00000000000000000000p-218
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i) == -2.2583360179249556400630343805573865814771e-32 + 0.6639894257763289307423302343317622430835 i
Result:
 is:         -2.25833601792495564006e-32  -0x1.d509bd04f0594f96bc8dp-106
 should be:  -2.25833601792495564006e-32  -0x1.d509bd04f0594f96bc8dp-106
 difference:  2.37389193643994968687e-66   0x1.00000000000000000000p-218
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i) == 2.7822833698845776001753149807484078521508e-37 + 0.3992725998539071066769046272515417679815 i
Result:
 is:          2.78228336988457760018e-37   0x1.7ab46d0031f0e1721ee0p-122
 should be:   2.78228336988457760018e-37   0x1.7ab46d0031f0e1721ee0p-122
 difference:  3.62227163153068494700e-71   0x1.00000000000000000000p-234
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i) == -1.0146400362652473358437501879334790111898e-37 + 0.5149047982335273098246594109614460842099 i
Result:
 is:         -1.01464003626524733584e-37  -0x1.1436172232843d175848p-123
 should be:  -1.01464003626524733584e-37  -0x1.1436172232843d175848p-123
 difference:  1.81113581576534247350e-71   0x1.00000000000000000000p-235
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 1.0529283395205396881397407610630442563938e-37 + 0.4947949395762683446121140513971996916447 i
Result:
 is:          4.94794939576268344612e-01   0x1.faab864ed3524cd99581p-2
 should be:   4.94794939576268344612e-01   0x1.faab864ed3524cd99581p-2
 difference:  4.81482486096808963264e-35   0x1.00000000000000000000p-114
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i) == -4.5643214291682663316715446865040356750881e-46 + 0.4564083863660793840592614609053162690362 i
Result:
 is:          4.56408386366079384059e-01   0x1.d35cb8543ff11ec8fa8cp-2
 should be:   4.56408386366079384059e-01   0x1.d35cb8543ff11ec8fa8cp-2
 difference:  4.81482486096808963264e-35   0x1.00000000000000000000p-114
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i
Result:
 is:         -1.52211625757296526136e-57  -0x1.31be49e8abd79c2d295ep-189
 should be:  -1.52211625757296526136e-57  -0x1.31be49e8abd79c2d295ep-189
 difference:  2.45454673264886327655e-91   0x1.00000000000000000000p-301
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i) == -1.5221162575729652613635150540947625639689e-57 + 0.5795934880811949230121092882659698986043 i
Result:
 is:          5.79593488081194923012e-01   0x1.28c07a48910c6f09d846p-1
 should be:   5.79593488081194923012e-01   0x1.28c07a48910c6f09d846p-1
 difference:  9.62964972193617926528e-35   0x1.00000000000000000000p-113
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i) == 1.8804859395820231849002915747252695375405e-63 + 0.6404513901551516189871978418046651877394 i
Result:
 is:          1.88048593958202318490e-63   0x1.8c1399ed6a400a51c70bp-209
 should be:   1.88048593958202318490e-63   0x1.8c1399ed6a400a51c70bp-209
 difference:  2.34083817734609916358e-97   0x1.00000000000000000000p-321
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i) == 2.8774482675253468630312378575186855052697e-66 + 0.4571561610046221605554903008571429975493 
Result:
 is:          4.57156161004622160555e-01   0x1.d420bea2b813b58a8be9p-2
 should be:   4.57156161004622160555e-01   0x1.d420bea2b813b58a8be9p-2
 difference:  9.62964972193617926528e-35   0x1.00000000000000000000p-113
 ulp       :  2.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i) == 1.9985076315737626043096596036300177494613e-67 + 0.5883569274304683249184005177865521205198 i
Result:
 is:          1.99850763157376260431e-67   0x1.58d46efe6a89b82463bfp-222
 should be:   1.99850763157376260431e-67   0x1.58d46efe6a89b82463bfp-222
 difference:  2.85746847820568745554e-101   0x1.00000000000000000000p-334
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i) == 1.1288799405048268615023706955013387413519e-67 + 0.6137587762850841972073301550420510507903 i
Result:
 is:          1.12887994050482686150e-67   0x1.858fe91475225afde7fbp-223
 should be:   1.12887994050482686150e-67   0x1.858fe91475225afde7fbp-223
 difference:  1.42873423910284372777e-101   0x1.00000000000000000000p-335
 ulp       :  1.0000
 max.ulp   :  0.0000
Maximal error of real part of: clog10
 is      : 1 ulp
 accepted: 1 ulp
Maximal error of imaginary part of: clog10
 is      : 2 ulp
 accepted: 1 ulp
Failure: Test: Real part of: clog (0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i) == 11356.49165759582936919077408168801636572 + pi i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - pi i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (0x1.fp+16383 + 0x1p-16445 i) == 11356.49165759582936919077408168801636572 + +0 i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (0x1.fp+16383 - 0x1p-16445 i) == 11356.49165759582936919077408168801636572 - 0 i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (0x1p-16494 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 + pi/2 i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (0x1p-16494 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i) == 11356.49165759582936919077408168801636572 - pi/2 i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i) == 11356.49165759582936919077408168801636572 + pi i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i) == 11356.49165759582936919077408168801636572 - pi i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (0x1.fp+16383 + 0x1p-16494 i) == 11356.49165759582936919077408168801636572 + +0 i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (0x1.fp+16383 - 0x1p-16494 i) == 11356.49165759582936919077408168801636572 - 0 i
Result:
 is:          1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 should be:   1.13564916575958293692e+04   0x1.62e3eeea2d7756468207p+13
 difference:  1.57772181044202361082e-30   0x1.00000000000000000000p-99
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Real part of: clog (0x1p-8190 + 1.0 i) == 6.724206286224187012525355634643505205196e-4932 + 1.570796326794896619231321691639751442099 i: Exception "Underflow" set
Failure: Test: Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i) == 8.298731898331237038231468223024422855654e-5 + 1.110938609507128729312743251313024793990e-3 i
Result:
 is:          1.11093860950712872931e-03   0x1.2339d3fb97f3527f55b9p-10
 should be:   1.11093860950712872931e-03   0x1.2339d3fb97f3527f55b9p-10
 difference:  1.88079096131566001275e-37   0x1.00000000000000000000p-122
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Real part of: clog (0x0.ffffffffffffffffp0 + 0x0.ffffffffffffffffp-15000 i) == -5.421010862427522170184200798202494495630e-20 + 3.548665303440282824232502561095699343814e-4516 i: Exception "Underflow" set
Failure: Test: Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i) == 1.5366822245016167178749091974664853785194e-08 + 1.2522014929038946066987318471922169174157 i
Result:
 is:          1.25220149290389460670e+00   0x1.409046ec064c68ab9586p+0
 should be:   1.25220149290389460670e+00   0x1.409046ec064c68ab9586p+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i) == -3.9563019528687610863490232935890272740908e-11 + 0.9187593477446338910857133065497364950682 i
Result:
 is:          9.18759347744633891086e-01   0x1.d667a00eea3ca4afb1fbp-1
 should be:   9.18759347744633891086e-01   0x1.d667a00eea3ca4afb1fbp-1
 difference:  9.62964972193617926528e-35   0x1.00000000000000000000p-113
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i) == -4.4764192352906350039050902870893173560494e-13 + 1.1959106857549200806818600493552847793381 i
Result:
 is:          1.19591068575492008068e+00   0x1.322733e4411ac6a0936bp+0
 should be:   1.19591068575492008068e+00   0x1.322733e4411ac6a0936bp+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i) == 3.7303493627403868207597214252239749960738e-14 + 1.1625816408046866464773042283673653469061 i
Result:
 is:          1.16258164080468664648e+00   0x1.299ef34e2fa769bc7e0bp+0
 should be:   1.16258164080468664648e+00   0x1.299ef34e2fa769bc7e0bp+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i) == 5.3718272201930019901317065495843842735179e-26 + 1.0503831592447830576186444373011142397404 i
Result:
 is:          1.05038315924478305762e+00   0x1.0ce5e92539ba956c5bdfp+0
 should be:   1.05038315924478305762e+00   0x1.0ce5e92539ba956c5bdfp+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i) == 3.2047474274603604594851472963586149973093e-29 + 1.4422922682185099608731642353544207976604 i
Result:
 is:          1.44229226821850996087e+00   0x1.713a10eb45ac4ee34989p+0
 should be:   1.44229226821850996087e+00   0x1.713a10eb45ac4ee34989p+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i) == -9.7375017988218644730510244778042114638107e-30 + 0.9790637929494922564724108399524154766631 i
Result:
 is:         -9.73750179882186447305e-30  -0x1.8b000000000000000000p-97
 should be:  -9.73750179882186447305e-30  -0x1.8b000000000000000000p-97
 difference:  1.21543267145725423968e-63   0x1.00000000000000000000p-209
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i) == 8.3076914081087805757422664530653247447136e-30 + 1.2072712126771536614482822173033535043206 i
Result:
 is:          1.20727121267715366145e+00   0x1.350fb9e7d9c340e6bc99p+0
 should be:   1.20727121267715366145e+00   0x1.350fb9e7d9c340e6bc99p+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i) == -5.2000108498455368032511404449795741611813e-32 + 1.5288921536982513453421343495466824420259 i
Result:
 is:          1.52889215369825134534e+00   0x1.876579e73eb7fdb58028p+0
 should be:   1.52889215369825134534e+00   0x1.876579e73eb7fdb58028p+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i) == -1.1931267660846218205882675852805793644095e-36 + 1.2402109774337032400594953899784058127412 i
Result:
 is:          1.24021097743370324006e+00   0x1.3d7e777437cb88913a38p+0
 should be:   1.24021097743370324006e+00   0x1.3d7e777437cb88913a38p+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i) == 2.4244570985709679851855191080208817099132e-37 + 1.1393074519572050614551047548718495655972 i
Result:
 is:          1.13930745195720506146e+00   0x1.23a9a7363ecb1fd0b31bp+0
 should be:   1.13930745195720506146e+00   0x1.23a9a7363ecb1fd0b31bp+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i) == -1.0509738482436128031927971874674370984602e-45 + 1.0509191467640012308402149909370784281448 i
Result:
 is:          1.05091914676400123084e+00   0x1.0d0909861773b8a5a360p+0
 should be:   1.05091914676400123084e+00   0x1.0d0909861773b8a5a360p+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i) == -1.4281333889622737316199756373421183559948e-62 + 1.3673546561165378090903506783353927980633 i
Result:
 is:          1.36735465611653780909e+00   0x1.5e0af46a0dc9860502adp+0
 should be:   1.36735465611653780909e+00   0x1.5e0af46a0dc9860502adp+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i) == 6.6255694866654064502633121109394710807528e-66 + 1.0526409614996288387567810726095850312049 i
Result:
 is:          1.05264096149962883876e+00   0x1.0d79e0c812269108561dp+0
 should be:   1.05264096149962883876e+00   0x1.0d79e0c812269108561dp+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i) == 4.6017338806965821566734340588575402712716e-67 + 1.3547418904611758959096647942223384691728 i
Result:
 is:          1.35474189046117589591e+00   0x1.5ad05d520d4d91301f27p+0
 should be:   1.35474189046117589591e+00   0x1.5ad05d520d4d91301f27p+0
 difference:  1.92592994438723585306e-34   0x1.00000000000000000000p-112
 ulp       :  1.0000
 max.ulp   :  0.0000
Maximal error of real part of: clog
 is      : 1 ulp
 accepted: 1 ulp
Maximal error of imaginary part of: clog
 is      : 1 ulp
 accepted: 0 ulp
Failure: Test: Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i
Result:
 is:          1.31338600281188544931e-01   0x1.0cfb408747eda045622ep-3
 should be:   1.31338600281188544931e-01   0x1.0cfb408747eda045622ep-3
 difference:  2.40741243048404481632e-35   0x1.00000000000000000000p-115
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i) == 1.638872094839911521020410942677082920935e-154 + 6.788430486774966350907249113759995429568e-155 i
Result:
 is:          6.78843048677496635091e-155   0x1.d203138f6c8290f79563p-513
 should be:   6.78843048677496635091e-155   0x1.d203138f6c8290f79563p-513
 difference:  7.18212087483073508066e-189   0x1.00000000000000000000p-625
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i) == 6.788430486774966350907249113759995429568e-155 - 1.638872094839911521020410942677082920935e-154 i
Result:
 is:          6.78843048677496635091e-155   0x1.d203138f6c8290f79563p-513
 should be:   6.78843048677496635091e-155   0x1.d203138f6c8290f79563p-513
 difference:  7.18212087483073508066e-189   0x1.00000000000000000000p-625
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i
Result:
 is:          2.01455143967564490013e-2466   0x1.19435caffa9f8b589e4bp-8191
 should be:   2.01455143967564490013e-2466   0x1.19435caffa9f8b589e4bp-8191
 difference:  3.53139259466812737643e-2500   0x1.00000000000000000000p-8303
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i) == 2.014551439675644900131815801350165472778e-2466 + 8.344545284118961664300307045791497724440e-2467 i
Result:
 is:          8.34454528411896166430e-2467   0x1.d203138f6c8282694ecap-8193
 should be:   8.34454528411896166430e-2467   0x1.d203138f6c8282694ecap-8193
 difference:  8.82848148667031844108e-2501   0x1.00000000000000000000p-8305
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i
Result:
 is:          8.34454528411896166430e-2467   0x1.d203138f6c8282694ecap-8193
 should be:   8.34454528411896166430e-2467   0x1.d203138f6c8282694ecap-8193
 difference:  8.82848148667031844108e-2501   0x1.00000000000000000000p-8305
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i) == 8.344545284118961664300307045791497724440e-2467 - 2.014551439675644900131815801350165472778e-2466 i
Result:
 is:         -2.01455143967564490013e-2466  -0x1.19435caffa9f8b589e4bp-8191
 should be:  -2.01455143967564490013e-2466  -0x1.19435caffa9f8b589e4bp-8191
 difference:  3.53139259466812737643e-2500   0x1.00000000000000000000p-8303
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i) == 2.014551439675644900022606748976158925145e-2466 + 8.3445452841189616638479483395192260
Result:
 is:          8.34454528411896166385e-2467   0x1.d203138f6c8282677cc7p-8193
 should be:   8.34454528411896166385e-2467   0x1.d203138f6c8282677cc7p-8193
 difference:  8.82848148667031844108e-2501   0x1.00000000000000000000p-8305
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i) == 8.344545284118961663847948339519226074126e-2467 - 2.014551439675644900022606748976158925145e-2466 i
Result:
 is:          8.34454528411896166385e-2467   0x1.d203138f6c8282677cc7p-8193
 should be:   8.34454528411896166385e-2467   0x1.d203138f6c8282677cc7p-8193
 difference:  8.82848148667031844108e-2501   0x1.00000000000000000000p-8305
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i
Result:
 is:         -2.28773324288564598739e+07  -0x1.5d14946dc98975d6421ap+24
 should be:  -2.28773324288564598739e+07  -0x1.5d14946dc98975d6421ap+24
 difference:  3.23117426778526435497e-27   0x1.00000000000000000000p-88
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i
Result:
 is:          7.33400854995437777873e-31   0x1.dc011e5adeb868e0c7adp-101
 should be:   7.33400854995437777873e-31   0x1.dc011e5adeb868e0c7adp-101
 difference:  1.51929083932156779960e-64   0x1.00000000000000000000p-212
 ulp       :  2.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i
Result:
 is:          1.63312393531953697560e+16   0x1.d02967c31cdb4e0c38d0p+53
 should be:   1.63312393531953697560e+16   0x1.d02967c31cdb4e0c38d0p+53
 difference:  5.20417042793042128324e-18   0x1.80000000000000000000p-58
 ulp       :  3.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i
Result:
 is:          1.31771941494350831600e-291   0x1.a4cb0f6ad794678c6002p-967
 should be:   1.31771941494350831600e-291   0x1.a4cb0f6ad794678c6002p-967
 difference:  4.63186542976168635166e-325   0x1.80000000000000000000p-1078
 ulp       :  3.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i
Result:
 is:          5.79388256887567406629e-4912   0x1.2af1800dc70a09fe7b8dp-16315
 should be:   5.79388256887567406629e-4912   0x1.2af1800dc70a09fe7b8dp-16315
 difference:  9.55567186085799422205e-4946   0x0.00000000000800000000p-16382
 ulp       :  1.0000
 max.ulp   :  0.0000
Maximal error of real part of: ctan_tonearest
 is      : 3 ulp
 accepted: 0 ulp
Maximal error of imaginary part of: ctan_tonearest
 is      : 3 ulp
 accepted: 0 ulp
Failure: Test: Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i
Result:
 is:          7.33400854995437777873e-31   0x1.dc011e5adeb868e0c7adp-101
 should be:   7.33400854995437777873e-31   0x1.dc011e5adeb868e0c7adp-101
 difference:  3.79822709830391949898e-64   0x1.40000000000000000000p-211
 ulp       :  5.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i
Result:
 is:          1.63312393531953697559e+16   0x1.d02967c31cdb4e0c38d0p+53
 should be:   1.63312393531953697559e+16   0x1.d02967c31cdb4e0c38d0p+53
 difference:  1.73472347597680709441e-18   0x1.00000000000000000000p-59
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctan_towardzero (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i
Result:
 is:          1.31771941494350831599e-291   0x1.a4cb0f6ad794678c6002p-967
 should be:   1.31771941494350831599e-291   0x1.a4cb0f6ad794678c6002p-967
 difference:  3.08791028650779090110e-325   0x1.00000000000000000000p-1078
 ulp       :  2.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctan_towardzero (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i
Result:
 is:         -3.98679762981171070672e+19  -0x1.14a3c09b557b46bd9dc0p+65
 should be:  -3.98679762981171070672e+19  -0x1.14a3c09b557b46bd9dc0p+65
 difference:  7.10542735760100185871e-15   0x1.00000000000000000000p-47
 ulp       :  1.0000
 max.ulp   :  0.0000
Maximal error of real part of: ctan_towardzero
 is      : 1 ulp
 accepted: 0 ulp
Maximal error of imaginary part of: ctan_towardzero
 is      : 5 ulp
 accepted: 0 ulp
Failure: Test: Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i
Result:
 is:         -2.28773324288564598740e+07  -0x1.5d14946dc98975d6421bp+24
 should be:  -2.28773324288564598740e+07  -0x1.5d14946dc98975d6421bp+24
 difference:  6.46234853557052870993e-27   0x1.00000000000000000000p-87
 ulp       :  2.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i
Result:
 is:          7.33400854995437777873e-31   0x1.dc011e5adeb868e0c7adp-101
 should be:   7.33400854995437777873e-31   0x1.dc011e5adeb868e0c7adp-101
 difference:  3.79822709830391949898e-64   0x1.40000000000000000000p-211
 ulp       :  5.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i
Result:
 is:          1.63312393531953697559e+16   0x1.d02967c31cdb4e0c38d0p+53
 should be:   1.63312393531953697559e+16   0x1.d02967c31cdb4e0c38d0p+53
 difference:  6.93889390390722837764e-18   0x1.00000000000000000000p-57
 ulp       :  4.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctan_downward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i
Result:
 is:          1.31771941494350831599e-291   0x1.a4cb0f6ad794678c6002p-967
 should be:   1.31771941494350831599e-291   0x1.a4cb0f6ad794678c6002p-967
 difference:  4.63186542976168635165e-325   0x1.80000000000000000000p-1078
 ulp       :  3.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctan_downward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i
Result:
 is:         -3.98679762981171070673e+19  -0x1.14a3c09b557b46bd9dc1p+65
 should be:  -3.98679762981171070673e+19  -0x1.14a3c09b557b46bd9dc1p+65
 difference:  1.42108547152020037174e-14   0x1.00000000000000000000p-46
 ulp       :  2.0000
 max.ulp   :  0.0000
Maximal error of real part of: ctan_downward
 is      : 4 ulp
 accepted: 0 ulp
Maximal error of imaginary part of: ctan_downward
 is      : 5 ulp
 accepted: 0 ulp
Failure: Test: Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i) == -2.287733242885645987394874673945769518150e7 + 7.334008549954377778731880988481078535821e-31 i
Result:
 is:         -2.28773324288564598739e+07  -0x1.5d14946dc98975d6421ap+24
 should be:  -2.28773324288564598739e+07  -0x1.5d14946dc98975d6421ap+24
 difference:  6.46234853557052870994e-27   0x1.00000000000000000000p-87
 ulp       :  2.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i
Result:
 is:          1.63312393531953697560e+16   0x1.d02967c31cdb4e0c38d1p+53
 should be:   1.63312393531953697560e+16   0x1.d02967c31cdb4e0c38d1p+53
 difference:  3.46944695195361418883e-18   0x1.00000000000000000000p-58
 ulp       :  2.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i) == 1.633123935319536975596773704152891653086e16 + 1.317719414943508315995636961402669067843e-291 i
Result:
 is:          1.31771941494350831600e-291   0x1.a4cb0f6ad794678c6003p-967
 should be:   1.31771941494350831600e-291   0x1.a4cb0f6ad794678c6003p-967
 difference:  4.63186542976168635166e-325   0x1.80000000000000000000p-1078
 ulp       :  3.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i
Result:
 is:         -3.98679762981171070672e+19  -0x1.14a3c09b557b46bd9dc0p+65
 should be:  -3.98679762981171070672e+19  -0x1.14a3c09b557b46bd9dc0p+65
 difference:  7.10542735760100185872e-15   0x1.00000000000000000000p-47
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctan_upward (0x1.921fb54442d1846ap+0 + 0x1p-16445 i) == -3.986797629811710706723242948653362815645e19 + 5.793882568875674066286163141055208625180e-4912 i
Result:
 is:          5.79388256887567406629e-4912   0x1.2af1800dc70a09fe7b8dp-16315
 should be:   5.79388256887567406629e-4912   0x1.2af1800dc70a09fe7b8dp-16315
 difference:  9.55567186085799422206e-4946   0x0.00000000000800000000p-16382
 ulp       :  1.0000
 max.ulp   :  0.0000
Maximal error of real part of: ctan_upward
 is      : 2 ulp
 accepted: 0 ulp
Maximal error of imaginary part of: ctan_upward
 is      : 3 ulp
 accepted: 0 ulp
Failure: Test: Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i
Result:
 is:          7.33400854995437777873e-31   0x1.dc011e5adeb868e0c7adp-101
 should be:   7.33400854995437777873e-31   0x1.dc011e5adeb868e0c7adp-101
 difference:  1.51929083932156779960e-64   0x1.00000000000000000000p-212
 ulp       :  2.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i
Result:
 is:         -2.28773324288564598739e+07  -0x1.5d14946dc98975d6421ap+24
 should be:  -2.28773324288564598739e+07  -0x1.5d14946dc98975d6421ap+24
 difference:  3.23117426778526435497e-27   0x1.00000000000000000000p-88
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i
Result:
 is:          1.31771941494350831600e-291   0x1.a4cb0f6ad794678c6002p-967
 should be:   1.31771941494350831600e-291   0x1.a4cb0f6ad794678c6002p-967
 difference:  4.63186542976168635166e-325   0x1.80000000000000000000p-1078
 ulp       :  3.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i
Result:
 is:          1.63312393531953697560e+16   0x1.d02967c31cdb4e0c38d0p+53
 should be:   1.63312393531953697560e+16   0x1.d02967c31cdb4e0c38d0p+53
 difference:  5.20417042793042128324e-18   0x1.80000000000000000000p-58
 ulp       :  3.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i
Result:
 is:          5.79388256887567406629e-4912   0x1.2af1800dc70a09fe7b8dp-16315
 should be:   5.79388256887567406629e-4912   0x1.2af1800dc70a09fe7b8dp-16315
 difference:  9.55567186085799422205e-4946   0x0.00000000000800000000p-16382
 ulp       :  1.0000
 max.ulp   :  0.0000
Maximal error of real part of: ctanh_tonearest
 is      : 3 ulp
 accepted: 0 ulp
Maximal error of imaginary part of: ctanh_tonearest
 is      : 3 ulp
 accepted: 0 ulp
Failure: Test: Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i
Result:
 is:          7.33400854995437777873e-31   0x1.dc011e5adeb868e0c7adp-101
 should be:   7.33400854995437777873e-31   0x1.dc011e5adeb868e0c7adp-101
 difference:  3.79822709830391949898e-64   0x1.40000000000000000000p-211
 ulp       :  5.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i
Result:
 is:          1.31771941494350831599e-291   0x1.a4cb0f6ad794678c6002p-967
 should be:   1.31771941494350831599e-291   0x1.a4cb0f6ad794678c6002p-967
 difference:  3.08791028650779090110e-325   0x1.00000000000000000000p-1078
 ulp       :  2.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctanh_towardzero (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i
Result:
 is:          1.63312393531953697559e+16   0x1.d02967c31cdb4e0c38d0p+53
 should be:   1.63312393531953697559e+16   0x1.d02967c31cdb4e0c38d0p+53
 difference:  1.73472347597680709441e-18   0x1.00000000000000000000p-59
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctanh_towardzero (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i
Result:
 is:         -3.98679762981171070672e+19  -0x1.14a3c09b557b46bd9dc0p+65
 should be:  -3.98679762981171070672e+19  -0x1.14a3c09b557b46bd9dc0p+65
 difference:  7.10542735760100185871e-15   0x1.00000000000000000000p-47
 ulp       :  1.0000
 max.ulp   :  0.0000
Maximal error of real part of: ctanh_towardzero
 is      : 5 ulp
 accepted: 0 ulp
Maximal error of imaginary part of: ctanh_towardzero
 is      : 1 ulp
 accepted: 0 ulp
Failure: Test: Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i
Result:
 is:          7.33400854995437777873e-31   0x1.dc011e5adeb868e0c7adp-101
 should be:   7.33400854995437777873e-31   0x1.dc011e5adeb868e0c7adp-101
 difference:  3.79822709830391949898e-64   0x1.40000000000000000000p-211
 ulp       :  5.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i
Result:
 is:         -2.28773324288564598740e+07  -0x1.5d14946dc98975d6421bp+24
 should be:  -2.28773324288564598740e+07  -0x1.5d14946dc98975d6421bp+24
 difference:  6.46234853557052870993e-27   0x1.00000000000000000000p-87
 ulp       :  2.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i
Result:
 is:          1.31771941494350831599e-291   0x1.a4cb0f6ad794678c6002p-967
 should be:   1.31771941494350831599e-291   0x1.a4cb0f6ad794678c6002p-967
 difference:  4.63186542976168635165e-325   0x1.80000000000000000000p-1078
 ulp       :  3.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctanh_downward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i
Result:
 is:          1.63312393531953697559e+16   0x1.d02967c31cdb4e0c38d0p+53
 should be:   1.63312393531953697559e+16   0x1.d02967c31cdb4e0c38d0p+53
 difference:  6.93889390390722837764e-18   0x1.00000000000000000000p-57
 ulp       :  4.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctanh_downward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i
Result:
 is:         -3.98679762981171070673e+19  -0x1.14a3c09b557b46bd9dc1p+65
 should be:  -3.98679762981171070673e+19  -0x1.14a3c09b557b46bd9dc1p+65
 difference:  1.42108547152020037174e-14   0x1.00000000000000000000p-46
 ulp       :  2.0000
 max.ulp   :  0.0000
Maximal error of real part of: ctanh_downward
 is      : 5 ulp
 accepted: 0 ulp
Maximal error of imaginary part of: ctanh_downward
 is      : 4 ulp
 accepted: 0 ulp
Failure: Test: Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i) == 7.334008549954377778731880988481078535821e-31 - 2.287733242885645987394874673945769518150e7 i
Result:
 is:         -2.28773324288564598739e+07  -0x1.5d14946dc98975d6421ap+24
 should be:  -2.28773324288564598739e+07  -0x1.5d14946dc98975d6421ap+24
 difference:  6.46234853557052870994e-27   0x1.00000000000000000000p-87
 ulp       :  2.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i
Result:
 is:          1.31771941494350831600e-291   0x1.a4cb0f6ad794678c6003p-967
 should be:   1.31771941494350831600e-291   0x1.a4cb0f6ad794678c6003p-967
 difference:  4.63186542976168635166e-325   0x1.80000000000000000000p-1078
 ulp       :  3.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i) == 1.317719414943508315995636961402669067843e-291 + 1.633123935319536975596773704152891653086e16 i
Result:
 is:          1.63312393531953697560e+16   0x1.d02967c31cdb4e0c38d1p+53
 should be:   1.63312393531953697560e+16   0x1.d02967c31cdb4e0c38d1p+53
 difference:  3.46944695195361418883e-18   0x1.00000000000000000000p-58
 ulp       :  2.0000
 max.ulp   :  0.0000
Failure: Test: Real part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i
Result:
 is:          5.79388256887567406629e-4912   0x1.2af1800dc70a09fe7b8dp-16315
 should be:   5.79388256887567406629e-4912   0x1.2af1800dc70a09fe7b8dp-16315
 difference:  9.55567186085799422206e-4946   0x0.00000000000800000000p-16382
 ulp       :  1.0000
 max.ulp   :  0.0000
Failure: Test: Imaginary part of: ctanh_upward (0x1p-16445 + 0x1.921fb54442d1846ap+0 i) == 5.793882568875674066286163141055208625180e-4912 - 3.986797629811710706723242948653362815645e19 i
Result:
 is:         -3.98679762981171070672e+19  -0x1.14a3c09b557b46bd9dc0p+65
 should be:  -3.98679762981171070672e+19  -0x1.14a3c09b557b46bd9dc0p+65
 difference:  7.10542735760100185872e-15   0x1.00000000000000000000p-47
 ulp       :  1.0000
 max.ulp   :  0.0000
Maximal error of real part of: ctanh_upward
 is      : 3 ulp
 accepted: 0 ulp
Maximal error of imaginary part of: ctanh_upward
 is      : 2 ulp
 accepted: 0 ulp
Failure: yn (10, min_value) == -inf: Exception "Underflow" set
Failure: yn (10, min_value) == -inf: Exception "Underflow" set

Test suite completed:
  6455 test cases plus 5446 tests for exception flags executed.
  130 errors occurred.


More information about the Libc-alpha mailing list