From c2e3af6ee68d6c36164d49df92ec501e9343475f Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sun, 1 Mar 1998 11:06:48 +0000 Subject: [PATCH] 1998-03-01 19:05 H.J. Lu (hjl@gnu.org) * sysdeps/libm-ieee754/e_exp.c (__ieee754_exp): Use __isinf. Changed type of TWO43, TWO52 from float to double. * sysdeps/libm-ieee754/e_expf.c (__ieee754_expf): Use __isinff. * sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): Use __isinf. Changed type of TWO43 from float to double. * sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): Fix a typo. Use __isinff. 1998-03-01 19:05 H.J. Lu (hjl@gnu.org) * sysdeps/libm-ieee754/e_exp.c (__ieee754_exp): Use __isinf. Changed type of TWO43, TWO52 from float to double. * sysdeps/libm-ieee754/e_expf.c (__ieee754_expf): Use __isinff. * sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): Use __isinf. Changed type of TWO43 from float to double. * sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): Fix a typo. Use __isinff. --- ChangeLog | 10 ++++++++++ sysdeps/libm-ieee754/e_exp.c | 7 +++---- sysdeps/libm-ieee754/e_expf.c | 3 +-- sysdeps/libm-ieee754/s_exp2.c | 5 ++--- sysdeps/libm-ieee754/s_exp2f.c | 5 ++--- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 88431a635c9..51860f8ea76 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +1998-03-01 19:05 H.J. Lu (hjl@gnu.org) + + * sysdeps/libm-ieee754/e_exp.c (__ieee754_exp): Use __isinf. + Changed type of TWO43, TWO52 from float to double. + * sysdeps/libm-ieee754/e_expf.c (__ieee754_expf): Use __isinff. + * sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): Use __isinf. + Changed type of TWO43 from float to double. + * sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): Fix a typo. + Use __isinff. + 1998-03-01 18:52 H.J. Lu (hjl@gnu.org) * sysdeps/unix/sysv/linux/alpha/syscalls.list (osf_settimeofday, diff --git a/sysdeps/libm-ieee754/e_exp.c b/sysdeps/libm-ieee754/e_exp.c index a6d53eb9dfb..660c5bc88db 100644 --- a/sysdeps/libm-ieee754/e_exp.c +++ b/sysdeps/libm-ieee754/e_exp.c @@ -71,14 +71,13 @@ static const volatile double TWOM1000 = 9.3326361850321887899e-302; double __ieee754_exp (double x) { - static const uint32_t a_minf = 0xff800000; static const double himark = 709.7827128933840868; static const double lomark = -745.1332191019412221; /* Check for usual case. */ if (isless (x, himark) && isgreater (x, lomark)) { - static const float TWO43 = 8796093022208.0; - static const float TWO52 = 4503599627370496.0; + static const double TWO43 = 8796093022208.0; + static const double TWO52 = 4503599627370496.0; /* 1/ln(2). */ static const double M_1_LN2 = 1.442695040888963387; /* ln(2), part 1 */ @@ -166,7 +165,7 @@ __ieee754_exp (double x) /* Exceptional cases: */ else if (isless (x, himark)) { - if (x == *(const float *) &a_minf) + if (__isinf (x)) /* e^-inf == 0, with no error. */ return 0; else diff --git a/sysdeps/libm-ieee754/e_expf.c b/sysdeps/libm-ieee754/e_expf.c index 08103aa2716..c4a7b644fd0 100644 --- a/sysdeps/libm-ieee754/e_expf.c +++ b/sysdeps/libm-ieee754/e_expf.c @@ -66,7 +66,6 @@ static const volatile float TWO127 = 1.7014118346e+38; float __ieee754_expf (float x) { - static const uint32_t a_minf = 0xff800000; static const float himark = 88.72283935546875; static const float lomark = -103.972084045410; /* Check for usual case. */ @@ -144,7 +143,7 @@ __ieee754_expf (float x) /* Exceptional cases: */ else if (isless (x, himark)) { - if (x == *(const float *) &a_minf) + if (__isinff (x)) /* e^-inf == 0, with no error. */ return 0; else diff --git a/sysdeps/libm-ieee754/s_exp2.c b/sysdeps/libm-ieee754/s_exp2.c index d6f4de02d69..ead1ce89eb7 100644 --- a/sysdeps/libm-ieee754/s_exp2.c +++ b/sysdeps/libm-ieee754/s_exp2.c @@ -42,14 +42,13 @@ static const volatile double TWOM1000 = 9.3326361850321887899e-302; double __ieee754_exp2 (double x) { - static const uint32_t a_minf = 0xff800000; static const double himark = (double) DBL_MAX_EXP; static const double lomark = (double) (DBL_MIN_EXP - DBL_MANT_DIG - 1) - 1.0; /* Check for usual case. */ if (isless (x, himark) && isgreater (x, lomark)) { - static const float TWO43 = 8796093022208.0; + static const double TWO43 = 8796093022208.0; int tval, unsafe; double rx, x22, result; union ieee754_double ex2_u, scale_u; @@ -125,7 +124,7 @@ __ieee754_exp2 (double x) /* Exceptional cases: */ else if (isless (x, himark)) { - if (x == *(const float *) &a_minf) + if (__isinf (x)) /* e^-inf == 0, with no error. */ return 0; else diff --git a/sysdeps/libm-ieee754/s_exp2f.c b/sysdeps/libm-ieee754/s_exp2f.c index 428f46f2410..641b7548f1c 100644 --- a/sysdeps/libm-ieee754/s_exp2f.c +++ b/sysdeps/libm-ieee754/s_exp2f.c @@ -43,7 +43,6 @@ static const volatile float TWO127 = 1.7014118346e+38; float __ieee754_exp2f (float x) { - static const uint32_t a_minf = 0xff800000; static const float himark = (float) FLT_MAX_EXP; static const float lomark = (float) (FLT_MIN_EXP - FLT_MANT_DIG - 1) - 1.0; @@ -76,7 +75,7 @@ __ieee754_exp2f (float x) else { rx = x - TWO15; -+ rx += TWO15; + rx += TWO15; } x -= rx; /* Compute x=x1. */ /* Compute tval = (ex*256 + t)+128. @@ -123,7 +122,7 @@ __ieee754_exp2f (float x) /* Exceptional cases: */ else if (isless (x, himark)) { - if (x == *(const float *) &a_minf) + if (__isinff (x)) /* e^-inf == 0, with no error. */ return 0; else -- 2.47.3