This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: Many new math failures
Andreas Jaeger <aj@suse.de> writes:
> Ulrich Drepper <drepper@redhat.com> writes:
>
>> On Fri, 2002-06-21 at 09:12, Andreas Jaeger wrote:
>>
>>> I used GCC 3.1 for this. I don't have a problem adding compiler
>>> dependent ULPs, just send me the ULPs file and I'll integrate it.
>>
>> Don't just blindly incorporate them. They have to be complared with the
>> old file. I hope you did this already for the files you checked in.
>
> The new file uses different values, it's not easy to compare them.
>
>> gcc 3 had build (actually test) failures forever due to larger errors.
>> Instead of adjusting the accepted errors we have to see whether we can
>> make the code more stable to reduce the variations in gcc's output.
>
>
> The old version needed the appended patch to pass the testsuite with
> GCC 3.1. I think that should indicate the functions we should look
> at.
>
> But I'll do a build with GCC 2.95 now and compare the files,
> Andreas
Here's a diff between the GCC 2.95 results (run on Pentium3) and GCC
3.1 results (on Athlon + P3),
So, in some ways we get worse, in others better numbers between these
two compilers.
Andreas
--- gcc-2.95.ulps Sun Jun 23 08:11:16 2002
+++ /cvs/libc/sysdeps/i386/fpu/libm-test-ulps Fri Jun 21 12:02:13 2002
@@ -35,16 +35,14 @@
# cacosh
Test "Real part of: cacosh (-2 - 3 i) == -1.9833870299165354323470769028940395 + 2.1414491111159960199416055713254211 i":
double: 1
-float: 4
+float: 9
idouble: 1
-ifloat: 4
+ifloat: 9
ildouble: 6
ldouble: 6
Test "Imaginary part of: cacosh (-2 - 3 i) == -1.9833870299165354323470769028940395 + 2.1414491111159960199416055713254211 i":
double: 1
-float: 4
idouble: 1
-ifloat: 4
ildouble: 1
ldouble: 1
Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
@@ -310,8 +308,8 @@
float: 3
idouble: 1
ifloat: 3
-ildouble: 37
-ldouble: 37
+ildouble: 370
+ldouble: 370
Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
double: 1
float: 4
@@ -356,6 +354,9 @@
ifloat: 1
ildouble: 1
ldouble: 1
+Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+float: 1
+ifloat: 1
# ctan
Test "Real part of: ctan (-2 - 3 i) == 0.0037640256415042482 - 1.0032386273536098014 i":
@@ -380,11 +381,16 @@
ildouble: 5
ldouble: 5
Test "Imaginary part of: ctanh (-2 - 3 i) == -0.9653858790221331242 + 0.0098843750383224937 i":
+float: 1
+ifloat: 1
ildouble: 25
ldouble: 25
Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
-double: 1
-idouble: 1
+float: 1
+ifloat: 1
+Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+float: 1
+ifloat: 1
Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
double: 1
float: 1
@@ -432,6 +438,8 @@
# gamma
Test "gamma (-0.5) == log(2*sqrt(pi))":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
@@ -462,9 +470,9 @@
ildouble: 1
ldouble: 1
Test "j0 (10.0) == -0.245935764451348335197760862485328754":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
Test "j0 (2.0) == 0.223890779141235668051827454649948626":
float: 1
@@ -504,9 +512,9 @@
ildouble: 1
ldouble: 1
Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
float: 1
@@ -535,19 +543,28 @@
ildouble: 1
ldouble: 1
Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
+Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+float: 1
+ifloat: 1
Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+float: 1
+ifloat: 1
ildouble: 2
ldouble: 2
Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
ildouble: 2
ldouble: 2
Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
@@ -556,13 +573,16 @@
Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
ildouble: 1
ldouble: 1
+Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+float: 1
+ifloat: 1
Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
ildouble: 1
ldouble: 1
Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
@@ -572,12 +592,12 @@
# lgamma
Test "lgamma (-0.5) == log(2*sqrt(pi))":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
Test "lgamma (0.7) == 0.26086724653166651439":
-double: 1
float: 1
-idouble: 1
ifloat: 1
Test "lgamma (1.2) == -0.853740900033158497197e-1":
double: 1
@@ -634,9 +654,9 @@
# tgamma
Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
@@ -648,11 +668,12 @@
float: 1
idouble: 1
ifloat: 1
+Test "tgamma (4) == 6":
+ildouble: 1
+ldouble: 1
# y0
Test "y0 (0.125) == -1.38968062514384052915582277745018693":
-double: 1
-idouble: 1
ildouble: 1
ldouble: 1
Test "y0 (0.75) == -0.137172769385772397522814379396581855":
@@ -661,13 +682,8 @@
idouble: 1
ifloat: 1
Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
-float: 1
-ifloat: 1
ildouble: 1
ldouble: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
-float: 1
-ifloat: 1
Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
float: 1
ifloat: 1
@@ -683,12 +699,6 @@
Test "y1 (0.125) == -5.19993611253477499595928744876579921":
ildouble: 1
ldouble: 1
-Test "y1 (1.0) == -0.781212821300288716547150000047964821":
-double: 1
-idouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
-float: 1
-ifloat: 1
Test "y1 (10.0) == 0.249015424206953883923283474663222803":
double: 2
float: 2
@@ -709,8 +719,6 @@
# yn
Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
-double: 1
-idouble: 1
ildouble: 1
ldouble: 1
Test "yn (0, 0.75) == -0.137172769385772397522814379396581855":
@@ -719,13 +727,8 @@
idouble: 1
ifloat: 1
Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
-float: 1
-ifloat: 1
ildouble: 1
ldouble: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
-float: 1
-ifloat: 1
Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
float: 1
ifloat: 1
@@ -739,12 +742,6 @@
Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
ildouble: 1
ldouble: 1
-Test "yn (1, 1.0) == -0.781212821300288716547150000047964821":
-double: 1
-idouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
-float: 1
-ifloat: 1
Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
double: 2
float: 2
@@ -779,20 +776,18 @@
ifloat: 1
Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
double: 1
+float: 1
idouble: 1
+ifloat: 1
Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
-double: 1
float: 1
-idouble: 1
ifloat: 1
Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
ildouble: 1
ldouble: 1
Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
double: 1
-float: 1
idouble: 1
-ifloat: 1
ildouble: 2
ldouble: 2
Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
@@ -821,17 +816,15 @@
Function: Real part of "cacosh":
double: 1
-float: 4
+float: 9
idouble: 1
-ifloat: 4
+ifloat: 9
ildouble: 6
ldouble: 6
Function: Imaginary part of "cacosh":
double: 1
-float: 4
idouble: 1
-ifloat: 4
ildouble: 1
ldouble: 1
@@ -1003,6 +996,8 @@
ldouble: 3
Function: Real part of "ctanh":
+float: 1
+ifloat: 1
ildouble: 5
ldouble: 5
@@ -1032,6 +1027,8 @@
ldouble: 8
Function: "gamma":
+double: 1
+idouble: 1
ildouble: 1
ldouble: 1
@@ -1039,9 +1036,9 @@
float: 1
Function: "j0":
-double: 2
+double: 1
float: 1
-idouble: 2
+idouble: 1
ifloat: 1
ildouble: 1
ldouble: 1
@@ -1055,10 +1052,10 @@
ldouble: 1
Function: "jn":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
ildouble: 2
ldouble: 2
@@ -1096,9 +1093,9 @@
idouble: 1
Function: "tgamma":
-double: 1
+double: 2
float: 1
-idouble: 1
+idouble: 2
ifloat: 1
ildouble: 1
ldouble: 1
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
http://www.suse.de/~aj