c/numeric/complex/catanh

@1-3@ Computes the complex arc hyperbolic tangent of with branch cuts outside the interval $[−1; +1]$ along the real axis. @4@ Type-generic macro: If has type,  is called. if has type,  is called, if  has type ,  is called. If is real or integer, then the macro invokes the corresponding real function. If is imaginary, then the macro invokes the corresponding real version of, implementing the formula $atanh(iy) = i atan(y)$, and the return type is imaginary.

Return value
If no errors occur, the complex arc hyperbolic tangent of is returned, in the range of a half-strip mathematically unbounded along the real axis and in the interval $[−iπ/2; +iπ/2]$ along the imaginary axis.

Error handling and special values
Errors are reported consistent with math_errhandling

If the implementation supports IEEE floating-point arithmetic,
 * If is, the result is
 * If is, the result is
 * If is, the result is  and fe_divbyzero is raised
 * If is  (for any finite positive x), the result is
 * If is  (for any finite nonzero x), the result is  and fe_invalid may be raised
 * If is  (for any finite positive y), the result is
 * If is, the result is
 * If is, the result is
 * If is  (for any finite y), the result is  and fe_invalid may be raised
 * If is, the result is  (the sign of the real part is unspecified)
 * If is, the result is
 * If is, the result is  (the sign of the real part is unspecified)
 * If is, the result is