CHOOSE (0, 0, 2e-7));
CHOOSE (0, 2e-16, 2e-7));
ctanh_test (void){  __complex__ MATHTYPE result;  result = FUNC(ctanh) (BUILD_COMPLEX (0, 0));  check ("real(ctanh(0 + i0)) = 0", __real__ result, 0);  check ("imag(ctanh(0 + i0)) = 0", __imag__ result, 0);  result = FUNC(ctanh) (BUILD_COMPLEX (0, minus_zero));  check ("real(ctanh(0 - i0)) = 0", __real__ result, 0);  check ("imag(ctanh(0 - i0)) = -0", __imag__ result, minus_zero);  result = FUNC(ctanh) (BUILD_COMPLEX (minus_zero, 0));  check ("real(ctanh(-0 + i0)) = -0", __real__ result, minus_zero);  check ("imag(ctanh(-0 + i0)) = 0", __imag__ result, 0);  result = FUNC(ctanh) (BUILD_COMPLEX (minus_zero, minus_zero));  check ("real(ctanh(-0 - i0)) = -0", __real__ result, minus_zero);  check ("imag(ctanh(-0 - i0)) = -0", __imag__ result, minus_zero);  result = FUNC(ctanh) (BUILD_COMPLEX (plus_infty, 0));  check ("real(ctanh(+Inf + i0)) = 1", __real__ result, 1);  check ("imag(ctanh(+Inf + i0)) = 0", __imag__ result, 0);  result = FUNC(ctanh) (BUILD_COMPLEX (plus_infty, 1));  check ("real(ctanh(+Inf + i1)) = 1", __real__ result, 1);  check ("imag(ctanh(+Inf + i1)) = 0", __imag__ result, 0);  result = FUNC(ctanh) (BUILD_COMPLEX (plus_infty, minus_zero));  check ("real(ctanh(+Inf - i0)) = 1", __real__ result, 1);  check ("imag(ctanh(+Inf - i0)) = -0", __imag__ result, minus_zero);  result = FUNC(ctanh) (BUILD_COMPLEX (plus_infty, -1));  check ("real(ctanh(+Inf - i1)) = 1", __real__ result, 1);  check ("imag(ctanh(+Inf - i1)) = -0", __imag__ result, minus_zero);  result = FUNC(ctanh) (BUILD_COMPLEX (minus_infty, 0));  check ("real(ctanh(-Inf + i0)) = -1", __real__ result, -1);  check ("imag(ctanh(-Inf + i0)) = 0", __imag__ result, 0);  result = FUNC(ctanh) (BUILD_COMPLEX (minus_infty, 1));  check ("real(ctanh(-Inf + i1)) = -1", __real__ result, -1);  check ("imag(ctanh(-Inf + i1)) = 0", __imag__ result, 0);  result = FUNC(ctanh) (BUILD_COMPLEX (minus_infty, minus_zero));  check ("real(ctanh(-Inf - i0)) = -1", __real__ result, -1);  check ("imag(ctanh(-Inf - i0)) = -0", __imag__ result, minus_zero);  result = FUNC(ctanh) (BUILD_COMPLEX (minus_infty, -1));  check ("real(ctanh(-Inf - i1)) = -1", __real__ result, -1);  check ("imag(ctanh(-Inf - i1)) = -0", __imag__ result, minus_zero);  result = FUNC(ctanh) (BUILD_COMPLEX (0, plus_infty));  check_isnan_exc ("real(ctanh(0 + i Inf)) = NaN plus invalid exception",		   __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(0 + i Inf)) = NaN plus invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (2, plus_infty));  check_isnan_exc ("real(ctanh(2 + i Inf)) = NaN plus invalid exception",		   __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(2 + i Inf)) = NaN plus invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (0, minus_infty));  check_isnan_exc ("real(ctanh(0 - i Inf)) = NaN plus invalid exception",		   __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(0 - i Inf)) = NaN plus invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (2, minus_infty));  check_isnan_exc ("real(ctanh(2 - i Inf)) = NaN plus invalid exception",		   __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(2 - i Inf)) = NaN plus invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (minus_zero, plus_infty));  check_isnan_exc ("real(ctanh(-0 + i Inf)) = NaN plus invalid exception",		   __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(-0 + i Inf)) = NaN plus invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (-2, plus_infty));  check_isnan_exc ("real(ctanh(-2 + i Inf)) = NaN plus invalid exception",		   __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(-2 + i Inf)) = NaN plus invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (minus_zero, minus_infty));  check_isnan_exc ("real(ctanh(-0 - i Inf)) = NaN plus invalid exception",		   __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(-0 - i Inf)) = NaN plus invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (-2, minus_infty));  check_isnan_exc ("real(ctanh(-2 - i Inf)) = NaN plus invalid exception",		   __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(-2 - i Inf)) = NaN plus invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (plus_infty, nan_value));  check ("real(ctanh(+Inf + i NaN)) = 1", __real__ result, 1);  check ("imag(ctanh(+Inf + i NaN)) = +-0", FUNC(fabs) (__imag__ result), 0);  result = FUNC(ctanh) (BUILD_COMPLEX (minus_infty, nan_value));  check ("real(ctanh(-Inf + i NaN)) = -1", __real__ result, -1);  check ("imag(ctanh(-Inf + i NaN)) = +-0", FUNC(fabs) (__imag__ result), 0);  result = FUNC(ctanh) (BUILD_COMPLEX (nan_value, 0));  check_isnan ("real(ctanh(NaN + i0)) = NaN", __real__ result);  check ("imag(ctanh(NaN + i0)) = 0", __imag__ result, 0);  result = FUNC(ctanh) (BUILD_COMPLEX (nan_value, minus_zero));  check_isnan ("real(ctanh(NaN - i0)) = NaN", __real__ result);  check ("imag(ctanh(NaN - i0)) = -0", __imag__ result, minus_zero);  result = FUNC(ctanh) (BUILD_COMPLEX (nan_value, 0.5));  check_isnan_maybe_exc ("real(ctanh(NaN + i0.5)) = NaN plus maybe invalid exception",			 __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(NaN + i0.5)) = NaN plus maybe invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (nan_value, -4.5));  check_isnan_maybe_exc ("real(ctanh(NaN - i4.5)) = NaN plus maybe invalid exception",			 __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(NaN - i4.5)) = NaN plus maybe invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (0, nan_value));  check_isnan_maybe_exc ("real(ctanh(0 + i NaN)) = NaN plus maybe invalid exception",			 __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(0 + i NaN)) = NaN plus maybe invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (5, nan_value));  check_isnan_maybe_exc ("real(ctanh(5 + i NaN)) = NaN plus maybe invalid exception",			 __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(5 + i NaN)) = NaN plus maybe invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (minus_zero, nan_value));  check_isnan_maybe_exc ("real(ctanh(-0 + i NaN)) = NaN plus maybe invalid exception",			 __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(-0 + i NaN)) = NaN plus maybe invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (-0.25, nan_value));  check_isnan_maybe_exc ("real(ctanh(-0.25 + i NaN)) = NaN plus maybe invalid exception",			 __real__ result, INVALID_EXCEPTION);  check_isnan ("imag(ctanh(-0.25 + i NaN)) = NaN plus maybe invalid exception",	       __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (nan_value, nan_value));  check_isnan ("real(ctanh(NaN + i NaN)) = NaN", __real__ result);  check_isnan ("imag(ctanh(NaN + i NaN)) = NaN", __imag__ result);  result = FUNC(ctanh) (BUILD_COMPLEX (0, M_PI_4));  check ("real(ctanh (0 + i pi/4)) == 0", __real__ result, 0);  check_eps ("imag(ctanh (0 + i pi/4)) == 1", __imag__ result, 1,	     CHOOSE (0, 0, 2e-7));  result = FUNC(ctanh) (BUILD_COMPLEX (0.7, 1.2));  check_eps ("real(ctanh(0.7 + i 1.2)) == 1.34721...", __real__ result,	     1.3472197399061191630L, CHOOSE(4e-17L, 6e-17, 2e-7));  check_eps ("imag(ctanh(0.7 + i 1.2)) == -0.47786...", __imag__ result,	     0.4778641038326365540L, CHOOSE(9e-17L, 6e-17, 0));  result = FUNC(ctanh) (BUILD_COMPLEX (-2, -3));  check_eps ("real(ctanh(-2 - i 3)) == --0.96538...", __real__ result,	     -0.9653858790221331242L, CHOOSE(2e-19L, 0, 0));  check_eps ("imag(ctanh(-2 - i 3)) == -0.00988...", __imag__ result,	     0.0098843750383224937L, CHOOSE(2e-20L, 0, 1e-9));}