diff options
Diffstat (limited to 'lib/msun/src/s_cos.c')
-rw-r--r-- | lib/msun/src/s_cos.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/msun/src/s_cos.c b/lib/msun/src/s_cos.c index b49b28a..17afa34 100644 --- a/lib/msun/src/s_cos.c +++ b/lib/msun/src/s_cos.c @@ -59,7 +59,11 @@ cos(double x) /* |x| ~< pi/4 */ ix &= 0x7fffffff; - if(ix <= 0x3fe921fb) return __kernel_cos(x,z); + if(ix <= 0x3fe921fb) { + if(ix<0x3e400000) /* if x < 2**-27 */ + if(((int)x)==0) return 1.0; /* generate inexact */ + return __kernel_cos(x,z); + } /* cos(Inf or NaN) is NaN */ else if (ix>=0x7ff00000) return x-x; |