diff options
Diffstat (limited to 'src/complex/cacoshl.c')
-rw-r--r-- | src/complex/cacoshl.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/complex/cacoshl.c b/src/complex/cacoshl.c index 65342557..3a284be9 100644 --- a/src/complex/cacoshl.c +++ b/src/complex/cacoshl.c @@ -1,4 +1,4 @@ -#include "libm.h" +#include "complex_impl.h" #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 long double complex cacoshl(long double complex z) @@ -8,7 +8,10 @@ long double complex cacoshl(long double complex z) #else long double complex cacoshl(long double complex z) { + int zineg = signbit(cimagl(z)); + z = cacosl(z); - return CMPLXL(-cimagl(z), creall(z)); + if (zineg) return CMPLXL(cimagl(z), -creall(z)); + else return CMPLXL(-cimagl(z), creall(z)); } #endif |