1
__FLT_TYPE __complex__ __cdecl
2
__FLT_ABI(ccosh) (__FLT_TYPE __complex__ z)
4
__complex__ __FLT_TYPE ret;
6
int r_class = fpclassify (__real__ z);
7
int i_class = fpclassify (__imag__ z);
11
__real__ ret = __FLT_NAN;
12
__imag__ ret = __imag__ z == __FLT_CST(0.0) ? __imag__ z : __FLT_NAN;
16
if (r_class == FP_INFINITE)
18
if (i_class == FP_ZERO)
20
__real__ ret = __FLT_HUGE_VAL;
21
__imag__ ret = __imag__ z * __FLT_ABI(copysign) (__FLT_CST(1.0), __real__ z);
25
if (i_class == FP_NAN || i_class == FP_INFINITE)
27
__real__ ret = __FLT_HUGE_VAL;
28
__imag__ ret = __FLT_NAN + __FLT_NAN;
32
__FLT_ABI(sincos) (__imag__ z, &s_x, &c_x);
34
__real__ ret = __FLT_ABI(copysign) (__FLT_HUGE_VAL, c_x);
35
__imag__ ret = (__FLT_ABI(copysign) (__FLT_HUGE_VAL, s_x) * __FLT_ABI(copysign) (__FLT_CST(1.0), __real__ z));
39
if (i_class == FP_NAN || i_class == FP_INFINITE)
41
__imag__ ret = __real__ z == __FLT_CST(0.0) ? __FLT_CST(0.0) : __FLT_NAN;
42
__real__ ret = __FLT_NAN + __FLT_NAN;
46
__FLT_ABI(sincos) (__imag__ z, &s_x, &c_x);
48
__real__ ret = __FLT_ABI(cosh) (__real__ z) * c_x;
49
__imag__ ret = __FLT_ABI(sinh) (__real__ z) * s_x;