#include "libm.h" /* acosh(z) = i acos(z) */ double complex cacosh(double complex z) { _Bool zineg = cimag(z) < 0; z = cacos(z); if (zineg) return CMPLX(cimag(z), -creal(z)); else return CMPLX(-cimag(z), creal(z)); }