X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fmath%2Fatan.c;h=63b0ab25e3cf02ea81bab5a9ee4d99d6c40bb582;hb=0705fe93566fca735bf0df155f71641df02fc273;hp=3c9a59ff3067abdeca4a1c6270f89dc9882e7e9d;hpb=c6383b7b10303457306932584fc23f24b5153a81;p=musl diff --git a/src/math/atan.c b/src/math/atan.c index 3c9a59ff..63b0ab25 100644 --- a/src/math/atan.c +++ b/src/math/atan.c @@ -62,7 +62,7 @@ static const double aT[] = { double atan(double x) { - double w,s1,s2,z; + double_t w,s1,s2,z; uint32_t ix,sign; int id; @@ -77,8 +77,9 @@ double atan(double x) } if (ix < 0x3fdc0000) { /* |x| < 0.4375 */ if (ix < 0x3e400000) { /* |x| < 2^-27 */ - /* raise inexact if x!=0 */ - FORCE_EVAL(x + 0x1p120f); + if (ix < 0x00100000) + /* raise underflow for subnormal x */ + FORCE_EVAL((float)x); return x; } id = -1;