about summary refs log tree commit diff
path: root/sysdeps/ieee754
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-10-22 15:30:17 +0000
committerUlrich Drepper <drepper@redhat.com>1999-10-22 15:30:17 +0000
commiteb3bf57345cb1451a5d2578dc3f7fbe5aff3b8b5 (patch)
tree6ec83dbe97d438107bfc2da109e1f9b24235aef0 /sysdeps/ieee754
parente11d6a7d770cb612285a2fa773db978a01939645 (diff)
downloadglibc-eb3bf57345cb1451a5d2578dc3f7fbe5aff3b8b5.tar.gz
glibc-eb3bf57345cb1451a5d2578dc3f7fbe5aff3b8b5.tar.xz
glibc-eb3bf57345cb1451a5d2578dc3f7fbe5aff3b8b5.zip
Update.
	* sysdeps/ieee754/ldbl-96/s_nexttoward.c: If x == y, return y.

	* sysdeps/ieee754/dbl-64/e_lgamma_r.c: Don't handle -Inf special.

	* sysdeps/ieee754/dbl-64/e_gamma_r.c (__ieee754_gamma_r): Check
	for -Inf and return NaN.
Diffstat (limited to 'sysdeps/ieee754')
-rw-r--r--sysdeps/ieee754/dbl-64/e_gamma_r.c3
-rw-r--r--sysdeps/ieee754/dbl-64/e_lgamma_r.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_nexttoward.c2
3 files changed, 4 insertions, 3 deletions
diff --git a/sysdeps/ieee754/dbl-64/e_gamma_r.c b/sysdeps/ieee754/dbl-64/e_gamma_r.c
index bd802c24f1..eff40463be 100644
--- a/sysdeps/ieee754/dbl-64/e_gamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_gamma_r.c
@@ -45,6 +45,9 @@ __ieee754_gamma_r (double x, int *signgamp)
       *signgamp = 0;
       return (x - x) / (x - x);
     }
+  if ((unsigned int) hx == 0xfff00000 && lx==0)
+    /* x == -Inf.  According to ISO this is NaN.  */
+    return x - x;
 
   /* XXX FIXME.  */
   return __ieee754_exp (__ieee754_lgamma_r (x, signgamp));
diff --git a/sysdeps/ieee754/dbl-64/e_lgamma_r.c b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
index 92e9556568..ad775c616a 100644
--- a/sysdeps/ieee754/dbl-64/e_lgamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
@@ -226,8 +226,6 @@ static double zero=  0.00000000000000000000e+00;
 
     /* purge off +-inf, NaN, +-0, and negative arguments */
 	*signgamp = 1;
-	if ((unsigned int) hx==0xfff00000&&lx==0)
-	  return x-x;
 	ix = hx&0x7fffffff;
 	if(ix>=0x7ff00000) return x*x;
 	if((ix|lx)==0) return one/fabs(x);
diff --git a/sysdeps/ieee754/ldbl-96/s_nexttoward.c b/sysdeps/ieee754/ldbl-96/s_nexttoward.c
index debbb86a3c..941383e281 100644
--- a/sysdeps/ieee754/ldbl-96/s_nexttoward.c
+++ b/sysdeps/ieee754/ldbl-96/s_nexttoward.c
@@ -47,7 +47,7 @@ static char rcsid[] = "$NetBSD: $";
 	if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) ||   /* x is nan */
 	   ((iy>=0x7fff)&&((hy|ly)|-(hy|ly))!=0))           /* y is nan */
 	   return x+y;
-	if((long double) x==y) return x;	/* x=y, return x */
+	if((long double) x==y) return y;	/* x=y, return y */
 	if((ix|lx)==0) {			/* x == 0 */
 	    double x2;
 	    INSERT_WORDS(x,esy&0x8000?0x80000000:0,1);/* return +-minsub */