aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/libm-ieee754/e_exp.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>1998-03-01 11:06:48 +0000
committerRichard Henderson <rth@redhat.com>1998-03-01 11:06:48 +0000
commitc2e3af6ee68d6c36164d49df92ec501e9343475f (patch)
tree49dddb895bd8cce3ecd004b9e1eeb0350c5bf70d /sysdeps/libm-ieee754/e_exp.c
parent6356e131233c4cb9bc3befb4aa530cf2b2951110 (diff)
downloadglibc-c2e3af6ee68d6c36164d49df92ec501e9343475f.tar
glibc-c2e3af6ee68d6c36164d49df92ec501e9343475f.tar.gz
glibc-c2e3af6ee68d6c36164d49df92ec501e9343475f.tar.bz2
glibc-c2e3af6ee68d6c36164d49df92ec501e9343475f.zip
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.
Diffstat (limited to 'sysdeps/libm-ieee754/e_exp.c')
-rw-r--r--sysdeps/libm-ieee754/e_exp.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sysdeps/libm-ieee754/e_exp.c b/sysdeps/libm-ieee754/e_exp.c
index a6d53eb9df..660c5bc88d 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