aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/libm-ieee754
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/libm-ieee754')
-rw-r--r--sysdeps/libm-ieee754/e_exp.c7
-rw-r--r--sysdeps/libm-ieee754/e_expf.c3
-rw-r--r--sysdeps/libm-ieee754/s_exp2.c5
-rw-r--r--sysdeps/libm-ieee754/s_exp2f.c5
4 files changed, 8 insertions, 12 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
diff --git a/sysdeps/libm-ieee754/e_expf.c b/sysdeps/libm-ieee754/e_expf.c
index 08103aa271..c4a7b644fd 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 d6f4de02d6..ead1ce89eb 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 428f46f241..641b7548f1 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