diff options
Diffstat (limited to 'lib/msun/src/s_sinf.c')
| -rw-r--r-- | lib/msun/src/s_sinf.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/msun/src/s_sinf.c b/lib/msun/src/s_sinf.c index 8ea9e559a56d..a2485e81beca 100644 --- a/lib/msun/src/s_sinf.c +++ b/lib/msun/src/s_sinf.c @@ -30,7 +30,11 @@ sinf(float x) /* |x| ~< pi/4 */ ix &= 0x7fffffff; - if(ix <= 0x3f490fd8) return __kernel_sinf(x,z,0); + if(ix <= 0x3f490fd8) { + if(ix<0x39800000) /* if x < 2**-12 */ + if(((int)x)==0) return x; /* generate inexact */ + return __kernel_sinf(x,z,0); + } /* sin(Inf or NaN) is NaN */ else if (ix>=0x7f800000) return x-x; |
