diff options
Diffstat (limited to 'src/math/atanh.c')
-rw-r--r-- | src/math/atanh.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/math/atanh.c b/src/math/atanh.c index 29290463..dbe241d1 100644 --- a/src/math/atanh.c +++ b/src/math/atanh.c @@ -30,8 +30,7 @@ #include "libm.h" -static const double one = 1.0, huge = 1e300; -static const double zero = 0.0; +static const double huge = 1e300; double atanh(double x) { @@ -44,15 +43,15 @@ double atanh(double x) if ((ix | ((lx|-lx)>>31)) > 0x3ff00000) /* |x| > 1 */ return (x-x)/(x-x); if (ix == 0x3ff00000) - return x/zero; - if (ix < 0x3e300000 && (huge+x) > zero) /* x < 2**-28 */ + return x/0.0; + if (ix < 0x3e300000 && (huge+x) > 0.0) /* x < 2**-28 */ return x; SET_HIGH_WORD(x, ix); if (ix < 0x3fe00000) { /* x < 0.5 */ t = x+x; - t = 0.5*log1p(t + t*x/(one-x)); + t = 0.5*log1p(t + t*x/(1.0-x)); } else - t = 0.5*log1p((x+x)/(one-x)); + t = 0.5*log1p((x+x)/(1.0-x)); if (hx >= 0) return t; return -t; |