diff options
Diffstat (limited to 'math/s_csinf.c')
-rw-r--r-- | math/s_csinf.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/math/s_csinf.c b/math/s_csinf.c index 26c4bb0a2f..52cce4b46b 100644 --- a/math/s_csinf.c +++ b/math/s_csinf.c @@ -1,5 +1,5 @@ /* Complex sine function for float. - Copyright (C) 1997-2014 Free Software Foundation, Inc. + Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -33,16 +33,16 @@ __csinf (__complex__ float x) __real__ x = fabsf (__real__ x); - if (__builtin_expect (icls >= FP_ZERO, 1)) + if (__glibc_likely (icls >= FP_ZERO)) { /* Imaginary part is finite. */ - if (__builtin_expect (rcls >= FP_ZERO, 1)) + if (__glibc_likely (rcls >= FP_ZERO)) { /* Real part is finite. */ const int t = (int) ((FLT_MAX_EXP - 1) * M_LN2); float sinix, cosix; - if (__builtin_expect (rcls != FP_SUBNORMAL, 1)) + if (__glibc_likely (__real__ x > FLT_MIN)) { __sincosf (__real__ x, &sinix, &cosix); } @@ -52,6 +52,9 @@ __csinf (__complex__ float x) cosix = 1.0f; } + if (negate) + sinix = -sinix; + if (fabsf (__imag__ x) > t) { float exp_t = __ieee754_expf (t); @@ -86,9 +89,6 @@ __csinf (__complex__ float x) __imag__ retval = __ieee754_sinhf (__imag__ x) * cosix; } - if (negate) - __real__ retval = -__real__ retval; - if (fabsf (__real__ retval) < FLT_MIN) { volatile float force_underflow @@ -136,7 +136,7 @@ __csinf (__complex__ float x) /* Real part is finite. */ float sinix, cosix; - if (__builtin_expect (rcls != FP_SUBNORMAL, 1)) + if (__glibc_likely (__real__ x > FLT_MIN)) { __sincosf (__real__ x, &sinix, &cosix); } |