summaryrefslogtreecommitdiff
path: root/libc/math/s_catanh.c
diff options
context:
space:
mode:
Diffstat (limited to 'libc/math/s_catanh.c')
-rw-r--r--libc/math/s_catanh.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/libc/math/s_catanh.c b/libc/math/s_catanh.c
index e15c073f9..22ade15fa 100644
--- a/libc/math/s_catanh.c
+++ b/libc/math/s_catanh.c
@@ -1,5 +1,5 @@
/* Return arc hyperbole tangent for double value.
- Copyright (C) 1997 Free Software Foundation, Inc.
+ Copyright (C) 1997, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -20,8 +20,7 @@
#include <complex.h>
#include <math.h>
-
-#include "math_private.h"
+#include <math_private.h>
__complex__ double
@@ -31,7 +30,7 @@ __catanh (__complex__ double x)
int rcls = fpclassify (__real__ x);
int icls = fpclassify (__imag__ x);
- if (rcls <= FP_INFINITE || icls <= FP_INFINITE)
+ if (__builtin_expect (rcls <= FP_INFINITE || icls <= FP_INFINITE, 0))
{
if (icls == FP_INFINITE)
{
@@ -52,20 +51,18 @@ __catanh (__complex__ double x)
__imag__ res = __nan ("");
}
}
- else if (rcls == FP_ZERO && icls == FP_ZERO)
+ else if (__builtin_expect (rcls == FP_ZERO && icls == FP_ZERO, 0))
{
res = x;
}
else
{
- double i2, num, den;
-
- i2 = __imag__ x * __imag__ x;
+ double i2 = __imag__ x * __imag__ x;
- num = 1.0 + __real__ x;
+ double num = 1.0 + __real__ x;
num = i2 + num * num;
- den = 1.0 - __real__ x;
+ double den = 1.0 - __real__ x;
den = i2 + den * den;
__real__ res = 0.25 * (__ieee754_log (num) - __ieee754_log (den));