This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.19-666-ge7dd3c8


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  e7dd3c8c1db8c6d293abb995e033893b7328ad19 (commit)
      from  0ea5d373c7984a1da2d0e990c6e78e6d6c24f91b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e7dd3c8c1db8c6d293abb995e033893b7328ad19

commit e7dd3c8c1db8c6d293abb995e033893b7328ad19
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue Jun 24 20:56:56 2014 +0000

    Fix ldbl-128 erfl spurious underflows (bug 16287).
    
    This patch fixes bug 16287, spurious underflows from ldbl-128 erfl
    arising from it calling erfcl for arguments with absolute value at
    least 1.0, although for large positive arguments erfcl correctly
    underflows but erfl shouldn't.  The fix is simply to avoid calling
    erfcl, and just return 1, for arguments above a cut-off large enough
    that erfl correctly rounds to-nearest as 1 but not so large that erfcl
    underflows.
    
    Tested mips64.  Also tested x86_64 and x86 to confirm the new tests
    (taken from the tests of erfc) don't cause any problems there; no ulps
    updates needed.
    
    	[BZ #16287]
    	* sysdeps/ieee754/ldbl-128/s_erfl.c (__erfl): Return 1 without
    	calling __erfcl for arguments at least 16.
    	* math/auto-libm-test-in: Add more tests of erf.
    	* math/auto-libm-test-out: Regenerated.

diff --git a/ChangeLog b/ChangeLog
index 04d7f76..8ddb74f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2014-06-24  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #16287]
+	* sysdeps/ieee754/ldbl-128/s_erfl.c (__erfl): Return 1 without
+	calling __erfcl for arguments at least 16.
+	* math/auto-libm-test-in: Add more tests of erf.
+	* math/auto-libm-test-out: Regenerated.
+
 	* sysdeps/unix/sysv/linux/configure.ac: Remove cases for
 	individual architectures.
 	* sysdeps/unix/sysv/linux/configure: Regenerated.
diff --git a/NEWS b/NEWS
index abec219..e365acd 100644
--- a/NEWS
+++ b/NEWS
@@ -10,18 +10,18 @@ Version 2.20
 * The following bugs are resolved with this release:
 
   6804, 9894, 12994, 13347, 13651, 14308, 14770, 15119, 15132, 15347, 15514,
-  15698, 15804, 15894, 15946, 16002, 16064, 16095, 16198, 16284, 16315,
-  16348, 16349, 16354, 16357, 16362, 16447, 16516, 16532, 16545, 16564,
-  16574, 16599, 16600, 16609, 16610, 16611, 16613, 16619, 16623, 16629,
-  16632, 16634, 16639, 16642, 16648, 16649, 16670, 16674, 16677, 16680,
-  16681, 16683, 16689, 16695, 16701, 16706, 16707, 16712, 16713, 16714,
-  16724, 16731, 16739, 16740, 16743, 16754, 16758, 16759, 16760, 16770,
-  16786, 16789, 16791, 16796, 16799, 16800, 16815, 16823, 16824, 16831,
-  16838, 16849, 16854, 16876, 16877, 16878, 16882, 16885, 16888, 16890,
-  16912, 16915, 16916, 16917, 16918, 16922, 16927, 16928, 16932, 16943,
-  16958, 16965, 16966, 16967, 16977, 16978, 16984, 16990, 16996, 17009,
-  17022, 17031, 17042, 17048, 17050, 17058, 17061, 17062, 17069, 17075,
-  17079, 17084.
+  15698, 15804, 15894, 15946, 16002, 16064, 16095, 16198, 16284, 16287,
+  16315, 16348, 16349, 16354, 16357, 16362, 16447, 16516, 16532, 16545,
+  16564, 16574, 16599, 16600, 16609, 16610, 16611, 16613, 16619, 16623,
+  16629, 16632, 16634, 16639, 16642, 16648, 16649, 16670, 16674, 16677,
+  16680, 16681, 16683, 16689, 16695, 16701, 16706, 16707, 16712, 16713,
+  16714, 16724, 16731, 16739, 16740, 16743, 16754, 16758, 16759, 16760,
+  16770, 16786, 16789, 16791, 16796, 16799, 16800, 16815, 16823, 16824,
+  16831, 16838, 16849, 16854, 16876, 16877, 16878, 16882, 16885, 16888,
+  16890, 16912, 16915, 16916, 16917, 16918, 16922, 16927, 16928, 16932,
+  16943, 16958, 16965, 16966, 16967, 16977, 16978, 16984, 16990, 16996,
+  17009, 17022, 17031, 17042, 17048, 17050, 17058, 17061, 17062, 17069,
+  17075, 17079, 17084.
 
 * Optimized strchr implementation for AArch64.  Contributed by ARM Ltd.
 
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 4eaa013..79d276c 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -803,6 +803,16 @@ erf 0x1.c5bf94p-127
 erf 0x3.8b7fa8p-128
 erf -0x3.8b7f12369ded8p-1024
 erf 0x3.8b7f12369ded5518p-16384
+erf 26.0
+erf 28.0
+erf 100
+erf 106
+erf 106.5
+erf 106.625
+erf 107
+erf 108
+erf 1000
+erf max
 
 erfc 0.0
 erfc -0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index e47c3ab..d1ec2be 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -88101,6 +88101,300 @@ erf 0x3.8b7f12369ded5518p-16384
 = erf tonearest ldbl-128 0x3.8b7f12369ded5518p-16384L : 0x4.0000000000000029274014aceae4p-16384L : inexact-ok
 = erf towardzero ldbl-128 0x3.8b7f12369ded5518p-16384L : 0x4.0000000000000029274014aceae4p-16384L : inexact-ok
 = erf upward ldbl-128 0x3.8b7f12369ded5518p-16384L : 0x4.0000000000000029274014aceae8p-16384L : inexact-ok
+erf 26.0
+= erf downward flt-32 0x1.ap+4f : 0xf.fffffp-4f : inexact-ok
+= erf tonearest flt-32 0x1.ap+4f : 0x1p+0f : inexact-ok
+= erf towardzero flt-32 0x1.ap+4f : 0xf.fffffp-4f : inexact-ok
+= erf upward flt-32 0x1.ap+4f : 0x1p+0f : inexact-ok
+= erf downward dbl-64 0x1.ap+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf tonearest dbl-64 0x1.ap+4 : 0x1p+0 : inexact-ok
+= erf towardzero dbl-64 0x1.ap+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf upward dbl-64 0x1.ap+4 : 0x1p+0 : inexact-ok
+= erf downward ldbl-96-intel 0x1.ap+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-intel 0x1.ap+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-intel 0x1.ap+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-intel 0x1.ap+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-96-m68k 0x1.ap+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-m68k 0x1.ap+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-m68k 0x1.ap+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-m68k 0x1.ap+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0x1.ap+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0x1.ap+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0x1.ap+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0x1.ap+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128ibm 0x1.ap+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf tonearest ldbl-128ibm 0x1.ap+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128ibm 0x1.ap+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf upward ldbl-128ibm 0x1.ap+4L : 0x1p+0L : inexact-ok
+erf 28.0
+= erf downward flt-32 0x1.cp+4f : 0xf.fffffp-4f : inexact-ok
+= erf tonearest flt-32 0x1.cp+4f : 0x1p+0f : inexact-ok
+= erf towardzero flt-32 0x1.cp+4f : 0xf.fffffp-4f : inexact-ok
+= erf upward flt-32 0x1.cp+4f : 0x1p+0f : inexact-ok
+= erf downward dbl-64 0x1.cp+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf tonearest dbl-64 0x1.cp+4 : 0x1p+0 : inexact-ok
+= erf towardzero dbl-64 0x1.cp+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf upward dbl-64 0x1.cp+4 : 0x1p+0 : inexact-ok
+= erf downward ldbl-96-intel 0x1.cp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-intel 0x1.cp+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-intel 0x1.cp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-intel 0x1.cp+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-96-m68k 0x1.cp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-m68k 0x1.cp+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-m68k 0x1.cp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-m68k 0x1.cp+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0x1.cp+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0x1.cp+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0x1.cp+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0x1.cp+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128ibm 0x1.cp+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf tonearest ldbl-128ibm 0x1.cp+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128ibm 0x1.cp+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf upward ldbl-128ibm 0x1.cp+4L : 0x1p+0L : inexact-ok
+erf 100
+= erf downward flt-32 0x6.4p+4f : 0xf.fffffp-4f : inexact-ok
+= erf tonearest flt-32 0x6.4p+4f : 0x1p+0f : inexact-ok
+= erf towardzero flt-32 0x6.4p+4f : 0xf.fffffp-4f : inexact-ok
+= erf upward flt-32 0x6.4p+4f : 0x1p+0f : inexact-ok
+= erf downward dbl-64 0x6.4p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf tonearest dbl-64 0x6.4p+4 : 0x1p+0 : inexact-ok
+= erf towardzero dbl-64 0x6.4p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf upward dbl-64 0x6.4p+4 : 0x1p+0 : inexact-ok
+= erf downward ldbl-96-intel 0x6.4p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-intel 0x6.4p+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-intel 0x6.4p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-intel 0x6.4p+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-96-m68k 0x6.4p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-m68k 0x6.4p+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-m68k 0x6.4p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-m68k 0x6.4p+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0x6.4p+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0x6.4p+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0x6.4p+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0x6.4p+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128ibm 0x6.4p+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf tonearest ldbl-128ibm 0x6.4p+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128ibm 0x6.4p+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf upward ldbl-128ibm 0x6.4p+4L : 0x1p+0L : inexact-ok
+erf 106
+= erf downward flt-32 0x6.ap+4f : 0xf.fffffp-4f : inexact-ok
+= erf tonearest flt-32 0x6.ap+4f : 0x1p+0f : inexact-ok
+= erf towardzero flt-32 0x6.ap+4f : 0xf.fffffp-4f : inexact-ok
+= erf upward flt-32 0x6.ap+4f : 0x1p+0f : inexact-ok
+= erf downward dbl-64 0x6.ap+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf tonearest dbl-64 0x6.ap+4 : 0x1p+0 : inexact-ok
+= erf towardzero dbl-64 0x6.ap+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf upward dbl-64 0x6.ap+4 : 0x1p+0 : inexact-ok
+= erf downward ldbl-96-intel 0x6.ap+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-intel 0x6.ap+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-intel 0x6.ap+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-intel 0x6.ap+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-96-m68k 0x6.ap+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-m68k 0x6.ap+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-m68k 0x6.ap+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-m68k 0x6.ap+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0x6.ap+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0x6.ap+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0x6.ap+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0x6.ap+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128ibm 0x6.ap+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf tonearest ldbl-128ibm 0x6.ap+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128ibm 0x6.ap+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf upward ldbl-128ibm 0x6.ap+4L : 0x1p+0L : inexact-ok
+erf 106.5
+= erf downward flt-32 0x6.a8p+4f : 0xf.fffffp-4f : inexact-ok
+= erf tonearest flt-32 0x6.a8p+4f : 0x1p+0f : inexact-ok
+= erf towardzero flt-32 0x6.a8p+4f : 0xf.fffffp-4f : inexact-ok
+= erf upward flt-32 0x6.a8p+4f : 0x1p+0f : inexact-ok
+= erf downward dbl-64 0x6.a8p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf tonearest dbl-64 0x6.a8p+4 : 0x1p+0 : inexact-ok
+= erf towardzero dbl-64 0x6.a8p+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf upward dbl-64 0x6.a8p+4 : 0x1p+0 : inexact-ok
+= erf downward ldbl-96-intel 0x6.a8p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-intel 0x6.a8p+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-intel 0x6.a8p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-intel 0x6.a8p+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-96-m68k 0x6.a8p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-m68k 0x6.a8p+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-m68k 0x6.a8p+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-m68k 0x6.a8p+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0x6.a8p+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0x6.a8p+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0x6.a8p+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0x6.a8p+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128ibm 0x6.a8p+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf tonearest ldbl-128ibm 0x6.a8p+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128ibm 0x6.a8p+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf upward ldbl-128ibm 0x6.a8p+4L : 0x1p+0L : inexact-ok
+erf 106.625
+= erf downward flt-32 0x6.aap+4f : 0xf.fffffp-4f : inexact-ok
+= erf tonearest flt-32 0x6.aap+4f : 0x1p+0f : inexact-ok
+= erf towardzero flt-32 0x6.aap+4f : 0xf.fffffp-4f : inexact-ok
+= erf upward flt-32 0x6.aap+4f : 0x1p+0f : inexact-ok
+= erf downward dbl-64 0x6.aap+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf tonearest dbl-64 0x6.aap+4 : 0x1p+0 : inexact-ok
+= erf towardzero dbl-64 0x6.aap+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf upward dbl-64 0x6.aap+4 : 0x1p+0 : inexact-ok
+= erf downward ldbl-96-intel 0x6.aap+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-intel 0x6.aap+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-intel 0x6.aap+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-intel 0x6.aap+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-96-m68k 0x6.aap+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-m68k 0x6.aap+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-m68k 0x6.aap+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-m68k 0x6.aap+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0x6.aap+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0x6.aap+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0x6.aap+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0x6.aap+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128ibm 0x6.aap+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf tonearest ldbl-128ibm 0x6.aap+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128ibm 0x6.aap+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf upward ldbl-128ibm 0x6.aap+4L : 0x1p+0L : inexact-ok
+erf 107
+= erf downward flt-32 0x6.bp+4f : 0xf.fffffp-4f : inexact-ok
+= erf tonearest flt-32 0x6.bp+4f : 0x1p+0f : inexact-ok
+= erf towardzero flt-32 0x6.bp+4f : 0xf.fffffp-4f : inexact-ok
+= erf upward flt-32 0x6.bp+4f : 0x1p+0f : inexact-ok
+= erf downward dbl-64 0x6.bp+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf tonearest dbl-64 0x6.bp+4 : 0x1p+0 : inexact-ok
+= erf towardzero dbl-64 0x6.bp+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf upward dbl-64 0x6.bp+4 : 0x1p+0 : inexact-ok
+= erf downward ldbl-96-intel 0x6.bp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-intel 0x6.bp+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-intel 0x6.bp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-intel 0x6.bp+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-96-m68k 0x6.bp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-m68k 0x6.bp+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-m68k 0x6.bp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-m68k 0x6.bp+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0x6.bp+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0x6.bp+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0x6.bp+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0x6.bp+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128ibm 0x6.bp+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf tonearest ldbl-128ibm 0x6.bp+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128ibm 0x6.bp+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf upward ldbl-128ibm 0x6.bp+4L : 0x1p+0L : inexact-ok
+erf 108
+= erf downward flt-32 0x6.cp+4f : 0xf.fffffp-4f : inexact-ok
+= erf tonearest flt-32 0x6.cp+4f : 0x1p+0f : inexact-ok
+= erf towardzero flt-32 0x6.cp+4f : 0xf.fffffp-4f : inexact-ok
+= erf upward flt-32 0x6.cp+4f : 0x1p+0f : inexact-ok
+= erf downward dbl-64 0x6.cp+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf tonearest dbl-64 0x6.cp+4 : 0x1p+0 : inexact-ok
+= erf towardzero dbl-64 0x6.cp+4 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf upward dbl-64 0x6.cp+4 : 0x1p+0 : inexact-ok
+= erf downward ldbl-96-intel 0x6.cp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-intel 0x6.cp+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-intel 0x6.cp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-intel 0x6.cp+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-96-m68k 0x6.cp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-m68k 0x6.cp+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-m68k 0x6.cp+4L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-m68k 0x6.cp+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0x6.cp+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0x6.cp+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0x6.cp+4L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0x6.cp+4L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128ibm 0x6.cp+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf tonearest ldbl-128ibm 0x6.cp+4L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128ibm 0x6.cp+4L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf upward ldbl-128ibm 0x6.cp+4L : 0x1p+0L : inexact-ok
+erf 1000
+= erf downward flt-32 0x3.e8p+8f : 0xf.fffffp-4f : inexact-ok
+= erf tonearest flt-32 0x3.e8p+8f : 0x1p+0f : inexact-ok
+= erf towardzero flt-32 0x3.e8p+8f : 0xf.fffffp-4f : inexact-ok
+= erf upward flt-32 0x3.e8p+8f : 0x1p+0f : inexact-ok
+= erf downward dbl-64 0x3.e8p+8 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf tonearest dbl-64 0x3.e8p+8 : 0x1p+0 : inexact-ok
+= erf towardzero dbl-64 0x3.e8p+8 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf upward dbl-64 0x3.e8p+8 : 0x1p+0 : inexact-ok
+= erf downward ldbl-96-intel 0x3.e8p+8L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-intel 0x3.e8p+8L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-intel 0x3.e8p+8L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-intel 0x3.e8p+8L : 0x1p+0L : inexact-ok
+= erf downward ldbl-96-m68k 0x3.e8p+8L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-m68k 0x3.e8p+8L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-m68k 0x3.e8p+8L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-m68k 0x3.e8p+8L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0x3.e8p+8L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0x3.e8p+8L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0x3.e8p+8L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0x3.e8p+8L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128ibm 0x3.e8p+8L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf tonearest ldbl-128ibm 0x3.e8p+8L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128ibm 0x3.e8p+8L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf upward ldbl-128ibm 0x3.e8p+8L : 0x1p+0L : inexact-ok
+erf max
+= erf downward flt-32 0xf.fffffp+124f : 0xf.fffffp-4f : inexact-ok
+= erf tonearest flt-32 0xf.fffffp+124f : 0x1p+0f : inexact-ok
+= erf towardzero flt-32 0xf.fffffp+124f : 0xf.fffffp-4f : inexact-ok
+= erf upward flt-32 0xf.fffffp+124f : 0x1p+0f : inexact-ok
+= erf downward dbl-64 0xf.fffffp+124 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf tonearest dbl-64 0xf.fffffp+124 : 0x1p+0 : inexact-ok
+= erf towardzero dbl-64 0xf.fffffp+124 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf upward dbl-64 0xf.fffffp+124 : 0x1p+0 : inexact-ok
+= erf downward ldbl-96-intel 0xf.fffffp+124L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-intel 0xf.fffffp+124L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-intel 0xf.fffffp+124L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-intel 0xf.fffffp+124L : 0x1p+0L : inexact-ok
+= erf downward ldbl-96-m68k 0xf.fffffp+124L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-m68k 0xf.fffffp+124L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-m68k 0xf.fffffp+124L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-m68k 0xf.fffffp+124L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0xf.fffffp+124L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0xf.fffffp+124L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0xf.fffffp+124L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0xf.fffffp+124L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128ibm 0xf.fffffp+124L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf tonearest ldbl-128ibm 0xf.fffffp+124L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128ibm 0xf.fffffp+124L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf upward ldbl-128ibm 0xf.fffffp+124L : 0x1p+0L : inexact-ok
+= erf downward dbl-64 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf tonearest dbl-64 0xf.ffffffffffff8p+1020 : 0x1p+0 : inexact-ok
+= erf towardzero dbl-64 0xf.ffffffffffff8p+1020 : 0xf.ffffffffffff8p-4 : inexact-ok
+= erf upward dbl-64 0xf.ffffffffffff8p+1020 : 0x1p+0 : inexact-ok
+= erf downward ldbl-96-intel 0xf.ffffffffffff8p+1020L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-intel 0xf.ffffffffffff8p+1020L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-intel 0xf.ffffffffffff8p+1020L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-intel 0xf.ffffffffffff8p+1020L : 0x1p+0L : inexact-ok
+= erf downward ldbl-96-m68k 0xf.ffffffffffff8p+1020L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-m68k 0xf.ffffffffffff8p+1020L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-m68k 0xf.ffffffffffff8p+1020L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-m68k 0xf.ffffffffffff8p+1020L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0xf.ffffffffffff8p+1020L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0xf.ffffffffffff8p+1020L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0xf.ffffffffffff8p+1020L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0xf.ffffffffffff8p+1020L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128ibm 0xf.ffffffffffff8p+1020L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf tonearest ldbl-128ibm 0xf.ffffffffffff8p+1020L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128ibm 0xf.ffffffffffff8p+1020L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf upward ldbl-128ibm 0xf.ffffffffffff8p+1020L : 0x1p+0L : inexact-ok
+= erf downward ldbl-96-intel 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-intel 0xf.fffffffffffffffp+16380L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-intel 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-intel 0xf.fffffffffffffffp+16380L : 0x1p+0L : inexact-ok
+= erf downward ldbl-96-m68k 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf tonearest ldbl-96-m68k 0xf.fffffffffffffffp+16380L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-96-m68k 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffp-4L : inexact-ok
+= erf upward ldbl-96-m68k 0xf.fffffffffffffffp+16380L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0xf.fffffffffffffffp+16380L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0xf.fffffffffffffffp+16380L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0xf.fffffffffffffffp+16380L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0xf.fffffffffffffffffffffffffff8p+16380L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0xf.fffffffffffffffffffffffffff8p+16380L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0xf.fffffffffffffffffffffffffff8p+16380L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf tonearest ldbl-128 0xf.ffffffffffffbffffffffffffcp+1020L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.fffffffffffffffffffffffffff8p-4L : inexact-ok
+= erf upward ldbl-128 0xf.ffffffffffffbffffffffffffcp+1020L : 0x1p+0L : inexact-ok
+= erf downward ldbl-128ibm 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf tonearest ldbl-128ibm 0xf.ffffffffffffbffffffffffffcp+1020L : 0x1p+0L : inexact-ok
+= erf towardzero ldbl-128ibm 0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.fffffffffffffffffffffffffcp-4L : inexact-ok
+= erf upward ldbl-128ibm 0xf.ffffffffffffbffffffffffffcp+1020L : 0x1p+0L : inexact-ok
 erfc 0.0
 = erfc downward flt-32 0x0p+0f : 0x1p+0f : inexact-ok
 = erfc tonearest flt-32 0x0p+0f : 0x1p+0f : inexact-ok
diff --git a/sysdeps/ieee754/ldbl-128/s_erfl.c b/sysdeps/ieee754/ldbl-128/s_erfl.c
index 35ca8c1..9bfc9c5 100644
--- a/sysdeps/ieee754/ldbl-128/s_erfl.c
+++ b/sysdeps/ieee754/ldbl-128/s_erfl.c
@@ -769,6 +769,8 @@ __erfl (long double x)
 
   if (ix >= 0x3fff0000) /* |x| >= 1.0 */
     {
+      if (ix >= 0x40030000 && sign > 0)
+	return one; /* x >= 16, avoid spurious underflow from erfc.  */
       y = __erfcl (x);
       return (one - y);
       /*    return (one - __erfcl (x)); */

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                         |    6 +
 NEWS                              |   24 ++--
 math/auto-libm-test-in            |   10 ++
 math/auto-libm-test-out           |  294 +++++++++++++++++++++++++++++++++++++
 sysdeps/ieee754/ldbl-128/s_erfl.c |    2 +
 5 files changed, 324 insertions(+), 12 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]