diff -Naur mathfp/s_atangent.c mathfp-new/s_atangent.c --- mathfp/s_atangent.c Wed Nov 11 05:57:34 1998 +++ mathfp-new/s_atangent.c Thu Dec 23 19:52:53 1999 @@ -130,19 +130,21 @@ if (!branch) { + int e; /* Get the exponent values of the inputs. */ g = frexp (v, &expv); g = frexp (u, &expu); /* See if a divide will overflow. */ - if ((expv - expu) > DBL_MAX_EXP + 1023) + e = expv - expu; + if (e > DBL_MAX_EXP) { branch = 1; res = __PI_OVER_TWO; } /* Also check for underflow. */ - else if ((expv - expu) < -DBL_MIN_EXP) + else if (e < DBL_MIN_EXP) { branch = 2; res = 0.0; @@ -193,7 +195,7 @@ res += a[N]; } - if (arctan2 && branch) + if (arctan2) { if (u < 0.0 || branch == 2) res = __PI - res; diff -Naur mathfp/s_ldexp.c mathfp-new/s_ldexp.c --- mathfp/s_ldexp.c Wed Nov 11 05:57:34 1998 +++ mathfp-new/s_ldexp.c Thu Dec 23 19:35:45 1999 @@ -71,6 +71,8 @@ #ifndef _DOUBLE_IS_32BITS +#define DOUBLE_EXP_OFFS 1023 + double _DEFUN (ldexp, (double, int), double d _AND @@ -99,13 +101,13 @@ exp = (hd & 0x7ff00000) >> 20; exp += e; - if (exp > (DBL_MAX_EXP + 1023)) + if (exp > DBL_MAX_EXP + DOUBLE_EXP_OFFS) { errno = ERANGE; d = z_infinity.d; } - else if (exp < DBL_MIN_EXP) - { + else if (exp < DBL_MIN_EXP + DOUBLE_EXP_OFFS) + { errno = ERANGE; d = -z_infinity.d; } diff -Naur mathfp/sf_atangent.c mathfp-new/sf_atangent.c --- mathfp/sf_atangent.c Wed Nov 11 05:57:35 1998 +++ mathfp-new/sf_atangent.c Thu Dec 23 18:15:15 1999 @@ -59,19 +59,21 @@ if (!branch) { + int e; /* Get the exponent values of the inputs. */ g = frexpf (v, &expv); g = frexpf (u, &expu); /* See if a divide will overflow. */ - if ((expv - expu) > DBL_MAX_EXP + 1022) + e = expv - expu; + if (e > FLT_MAX_EXP) { branch = 1; res = __PI_OVER_TWO; } /* Also check for underflow. */ - else if ((expv - expu) < - DBL_MIN_EXP - 1022) + else if (e < FLT_MIN_EXP) { branch = 2; res = 0.0; @@ -122,7 +124,7 @@ res += a[N]; } - if (arctan2 && branch) + if (arctan2) { if (u < 0.0 || branch == 2) res = __PI - res; diff -Naur mathfp/sf_ldexp.c mathfp-new/sf_ldexp.c --- mathfp/sf_ldexp.c Wed Nov 11 05:57:35 1998 +++ mathfp-new/sf_ldexp.c Thu Dec 23 19:38:15 1999 @@ -20,6 +20,8 @@ #include "fdlibm.h" #include "zmath.h" +#define FLOAT_EXP_OFFS 127 + float _DEFUN (ldexpf, (float, int), float d _AND @@ -48,13 +50,13 @@ exp = (wd & 0x7f800000) >> 23; exp += e; - if (exp > (FLT_MAX_EXP + 127)) + if (exp > FLT_MAX_EXP + FLOAT_EXP_OFFS) { errno = ERANGE; d = z_infinity_f.f; } - else if (exp < FLT_MIN_EXP - 127) - { + else if (exp < FLT_MIN_EXP + FLOAT_EXP_OFFS) + { errno = ERANGE; d = -z_infinity_f.f; }