summary refs log tree commit diff
path: root/math
diff options
context:
space:
mode:
Diffstat (limited to 'math')
-rw-r--r--math/s_cacosh.c4
-rw-r--r--math/s_cacoshf.c4
-rw-r--r--math/s_cacoshl.c4
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;