X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fcosl.c;h=20786c147eaabaa766c019a5fba7bf5549518a52;hb=04606dd55fd8f1a122a21c4b4e09ab2a36498385;hp=3c28f77c6db93ad510b0580ac689ab26151685f0;hpb=e1123c2f4fedae90435426a82a05cf2e3233e97d;p=gnulib.git diff --git a/lib/cosl.c b/lib/cosl.c index 3c28f77c6..20786c147 100644 --- a/lib/cosl.c +++ b/lib/cosl.c @@ -60,13 +60,17 @@ long double cosl(long double x) long double y[2],z=0.0L; int n; + /* cosl(NaN) is NaN */ + if (isnanl (x)) + return x; + /* |x| ~< pi/4 */ if(x >= -0.7853981633974483096156608458198757210492 && x <= 0.7853981633974483096156608458198757210492) return kernel_cosl(x, z); - /* sinl(Inf or NaN) is NaN, sinl(0) is 0 */ - else if ((x + x == x && x != 0.0) || x != x) + /* cosl(Inf) is NaN, cosl(0) is 1 */ + else if (x + x == x && x != 0.0) return x-x; /* NaN */ /* argument reduction needed */