summaryrefslogtreecommitdiff
path: root/math/s_csinf.c
diff options
context:
space:
mode:
Diffstat (limited to 'math/s_csinf.c')
-rw-r--r--math/s_csinf.c16
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);
}