about summary refs log tree commit diff
path: root/sysdeps/ieee754/dbl-64/e_exp.c
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2003-12-28 18:57:35 +0000
committerAndreas Jaeger <aj@suse.de>2003-12-28 18:57:35 +0000
commit3737a0d70cac3ba09aa8f32709c4be8d70f41207 (patch)
tree59b4bff748ed586c59475201ba0662f6efd1f30e /sysdeps/ieee754/dbl-64/e_exp.c
parent6b6557e8b3b094132c619e3a2e00fe28422fd16f (diff)
downloadglibc-3737a0d70cac3ba09aa8f32709c4be8d70f41207.tar.gz
glibc-3737a0d70cac3ba09aa8f32709c4be8d70f41207.tar.xz
glibc-3737a0d70cac3ba09aa8f32709c4be8d70f41207.zip
Do not raise execptions for exp(NaN).
Diffstat (limited to 'sysdeps/ieee754/dbl-64/e_exp.c')
-rw-r--r--sysdeps/ieee754/dbl-64/e_exp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sysdeps/ieee754/dbl-64/e_exp.c b/sysdeps/ieee754/dbl-64/e_exp.c
index a6463e5874..717469e250 100644
--- a/sysdeps/ieee754/dbl-64/e_exp.c
+++ b/sysdeps/ieee754/dbl-64/e_exp.c
@@ -92,10 +92,10 @@ double __ieee754_exp(double x) {
   if (n <= smallint) return 1.0;
 
   if (n >= badint) {
-    if (n > infint) return(zero/zero);               /* x is NaN,  return invalid */
+    if (n > infint) return(x+x);               /* x is NaN */
     if (n < infint) return ( (x>0) ? (hhuge*hhuge) : (tiny*tiny) );
     /* x is finite,  cause either overflow or underflow  */
-    if (junk1.i[LOW_HALF] != 0)  return (zero/zero);                /*  x is NaN  */
+    if (junk1.i[LOW_HALF] != 0)  return (x+x);                /*  x is NaN  */
     return ((x>0)?inf.x:zero );             /* |x| = inf;  return either inf or 0 */
   }