diff options
Diffstat (limited to 'math')
-rw-r--r-- | math/s_cacosh.c | 4 | ||||
-rw-r--r-- | math/s_cacoshf.c | 4 | ||||
-rw-r--r-- | math/s_cacoshl.c | 4 |
3 files changed, 12 insertions, 0 deletions
diff --git a/math/s_cacosh.c b/math/s_cacosh.c index e921f0763e..ada7ca5af6 100644 --- a/math/s_cacosh.c +++ b/math/s_cacosh.c @@ -80,6 +80,10 @@ __cacosh (__complex__ double x) __imag__ y += __imag__ x; res = __clog (y); + + /* We have to use the positive branch. */ + if (__real__ res < 0.0) + res = -res; } return res; diff --git a/math/s_cacoshf.c b/math/s_cacoshf.c index 3fc48bb617..a062ffc6f6 100644 --- a/math/s_cacoshf.c +++ b/math/s_cacoshf.c @@ -95,6 +95,10 @@ __cacoshf (__complex__ float x) + ro); __imag__ res = __ieee754_atan2f (__imag__ x + b, __real__ x + a); #endif + + /* We have to use the positive branch. */ + if (__real__ res < 0.0) + res = -res; } return res; diff --git a/math/s_cacoshl.c b/math/s_cacoshl.c index 643858920e..da23c8d8aa 100644 --- a/math/s_cacoshl.c +++ b/math/s_cacoshl.c @@ -80,6 +80,10 @@ __cacoshl (__complex__ long double x) __imag__ y += __imag__ x; res = __clogl (y); + + /* We have to use the positive branch. */ + if (__real__ res < 0.0) + res = -res; } return res; |