diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2016-08-20 19:50:45 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2016-08-20 19:50:45 +0200 |
commit | 4dd9e35bfd35d3138bc44169baba098005bad51e (patch) | |
tree | a4939c43a9c3fe00eb27f023e14acc5e1fe8808c /math/s_csinf.c | |
parent | bd42a4599d1b6f77bcfe1e4f67b7cbd9e1cb2dfd (diff) | |
parent | f76453c31593957fec1a99b986bfa5506618b79c (diff) |
Merge commit 'refs/top-bases/t/bigmem' into t/bigmem
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); } |