glibc-2.1.2pre2: math failures on PPC

Geoff Keating geoffk@ozemail.com.au
Sun Aug 15 19:11:00 GMT 1999


I submitted a patch for this some time ago.  I think Ulrich hasn't
gotten to it yet.  I attach it below.

Ugh.  I just noticed I didn't use -p.  Sorry.

-- 
Geoffrey Keating <geoffk@cygnus.com>

===File ~/patches/glibc-53.diff=============================
1999-07-20  Geoff Keating  <geoffk@cygnus.com>

	* math/libm-test.c: Tweak deltas for a clean run on ppc.

--- glibc-2.1.2/math/libm-test.c~	Tue Jul 20 16:36:05 1999
+++ glibc-2.1.2/math/libm-test.c	Tue Jul 20 16:44:17 1999
@@ -5549,7 +5549,7 @@
   check_eps ("j1 (2.0) = 0.57672...", FUNC(j1) (2.0), 0.57672480775687338720,
 	     CHOOSE(0, 2e-16, 0));
   check_eps ("j1 (8.0) = 0.23463...", FUNC(j1) (8.0), 0.23463634685391462438,
-	     CHOOSE(0, 0, 1.5e-8));
+	     CHOOSE(0, 3e-17, 1.5e-8));
   check_eps ("j1 (10.0) = 0.04347...", FUNC(j1) (10.0), 0.043472746168861436670,
 	     CHOOSE(0, 2e-17, 7.5e-9));
 }
@@ -5598,7 +5598,7 @@
   check_eps ("jn (1, 2.0) = 0.57672...", FUNC(jn) (1, 2.0), 0.57672480775687338720,
 	     CHOOSE(0, 2e-16, 0));
   check_eps ("jn (1, 8.0) = 0.23463...", FUNC(jn) (1, 8.0), 0.23463634685391462438,
-	     CHOOSE(0, 0, 1.5e-8));
+	     CHOOSE(0, 3e-17, 1.5e-8));
   check_eps ("jn (1, 10.0) = 0.04347...", FUNC(jn) (1, 10.0), 0.043472746168861436670,
 	     CHOOSE(0, 2e-17, 7.5e-9));
 
@@ -5612,7 +5612,7 @@
   check_eps ("jn (3, 0.1) = 2.082...*10^-6", FUNC(jn) (3, 0.1), 0.000020820315754756261429,
 	     CHOOSE(0, 4e-21, 0));
   check_eps ("jn (3, 0.7) = 0.00692...", FUNC(jn) (3, 0.7), 0.0069296548267508408077,
-	     CHOOSE(0, 2e-18, 0));
+	     CHOOSE(0, 2e-18, 5e-10));
   check_eps ("jn (3, 1.0) = 0.01956...", FUNC(jn) (3, 1.0),
 	     0.019563353982668405919, CHOOSE (0, 0, 1.9e-9));
   check_eps ("jn (3, 2.0) = 0.12894...", FUNC(jn) (3, 2.0), 0.12894324947440205110,
@@ -5634,7 +5634,7 @@
   check_eps ("jn (10, 1.0) = 2.630...*10^-11", FUNC(jn) (10, 1.0), 0.26306151236874532070e-9,
 	     CHOOSE(0, 0, 5.6e-17));
   check_eps ("jn (10, 2.0) = 2.515...*10^-7", FUNC(jn) (10, 2.0), 0.25153862827167367096e-6,
-	     CHOOSE(0, 2e-22, 5.7e-14));
+	     CHOOSE(0, 2e-22, 9e-14));
   check_eps ("jn (10, 10.0) = 0.20748...", FUNC(jn) (10, 10.0), 0.20748610663335885770,
 	     CHOOSE(0, 2e-16, 1.4e-7));
 }
@@ -5659,9 +5659,9 @@
   check_eps ("y0 (0.7) = -0.19066...", FUNC(y0) (0.7), -0.19066492933739506743,
 	     CHOOSE(0, 6e-17, 1.5e-8));
   check_eps ("y0 (1.0) = 0.08825...", FUNC(y0) (1.0), 0.088256964215676957983,
-	     CHOOSE(0, 2e-17, 7.5e-9));
+	     CHOOSE(0, 3e-17, 7.5e-9));
   check_eps ("y0 (1.5) = 0.38244...", FUNC(y0) (1.5), 0.38244892379775884396,
-	     CHOOSE(0, 6e-17, 3.0e-8));
+	     CHOOSE(0, 1.2e-16, 3.0e-8));
   check_eps ("y0 (2.0) = 0.51037...", FUNC(y0) (2.0), 0.51037567264974511960,
 	     CHOOSE(0, 2e-16, 6e-8));
   check_eps ("y0 (8.0) = 0.22352...", FUNC(y0) (8.0), 0.22352148938756622053,
@@ -5697,7 +5697,7 @@
   check_eps ("y1 (2.0) = -0.10703...", FUNC(y1) (2.0), -0.10703243154093754689,
 	     CHOOSE(0, 2e-17, 1.5e-8));
   check_eps ("y1 (8.0) = -0.15806...", FUNC(y1) (8.0), -0.15806046173124749426,
-	     CHOOSE(0, 0, 3.0e-8));
+	     CHOOSE(0, 3e-17, 3.0e-8));
   check_eps ("y1 (10.0) = 0.24901...", FUNC(y1) (10.0), 0.24901542420695388392,
 	     CHOOSE(0, 9e-17, 3.0e-8));
 }
@@ -5724,9 +5724,9 @@
   check_eps ("yn (0, 0.7) = -0.19066...", FUNC(yn) (0, 0.7), -0.19066492933739506743,
 	     CHOOSE(0, 6e-17, 1.2e-7));
   check_eps ("yn (0, 1.0) = 0.08825...", FUNC(yn) (0, 1.0), 0.088256964215676957983,
-	     CHOOSE(0, 2e-17, 3e-8));
+	     CHOOSE(0, 3e-17, 3e-8));
   check_eps ("yn (0, 1.5) = 0.38244...", FUNC(yn) (0, 1.5), 0.38244892379775884396,
-	     CHOOSE(0, 6e-17, 3e-8));
+	     CHOOSE(0, 1.2e-16, 3e-8));
   check_eps ("yn (0, 2.0) = 0.51037...", FUNC(yn) (0, 2.0), 0.51037567264974511960,
 	     CHOOSE(0, 2e-16, 6e-8));
   check_eps ("yn (0, 8.0) = 0.22352...", FUNC(yn) (0, 8.0), 0.22352148938756622053,
@@ -5751,7 +5751,7 @@
   check_eps ("yn (1, 2.0) = -0.10703...", FUNC(yn) (1, 2.0), -0.10703243154093754689,
 	     CHOOSE(0, 2e-17, 2e-8));
   check_eps ("yn (1, 8.0) = -0.15806...", FUNC(yn) (1, 8.0), -0.15806046173124749426,
-	     CHOOSE(0, 0, 3e-8));
+	     CHOOSE(0, 3e-17, 3e-8));
   check_eps ("yn (1, 10.0) = 0.24901...", FUNC(yn) (1, 10.0), 0.24901542420695388392,
 	     CHOOSE(0, 9e-17, 3e-8));
 
@@ -5778,11 +5778,11 @@
   check_eps ("yn (10, 0.7) = -4.244...*10^9", FUNC(yn) (10, 0.7), -0.42447194260703866924e10,
 	     CHOOSE(0, 3e-6, 8e2));
   check_eps ("yn (10, 1.0) = -1.216...*10^8", FUNC(yn) (10, 1.0), -0.12161801427868918929e9,
-	     CHOOSE(0, 0, 9));
+	     CHOOSE(0, 0, 16));
   check_eps ("yn (10, 2.0) = -129184.5...", FUNC(yn) (10, 2.0), -129184.54220803928264,
-	     CHOOSE(0, 3e-11, 8e-3));
+	     CHOOSE(0, 4.4e-11, 8e-3));
   check_eps ("yn (10, 10.0) = -0.35981...", FUNC(yn) (10, 10.0), -0.35981415218340272205,
-	     CHOOSE(0, 6e-17, 3e-8));
+	     CHOOSE(0, 1.2e-16, 3e-8));
 
 }
 
============================================================


More information about the Libc-alpha mailing list