Type-generic macros that accept complex arguments also accept imaginary arguments. If
an argument is imaginary, the macro expands to an expression whose type is real,
imaginary, or complex, as appropriate for the particular function: if the argument is
imaginary, then the types of cos, cosh, fabs, carg, cimag, and creal are real; the
types of sin, tan, sinh, tanh, asin, atan, asinh, and atanh are imaginary; and
the types of the others are complex.
Type-generic macros that accept complex arguments also accept imaginary arguments. If
an argument is imaginary, the macro expands to an expression whose type is real,
imaginary, or complex, as appropriate for the particular function: if the argument is
imaginary, then the types of cos, cosh, fabs, carg, cimag, and creal are real; the
types of sin, tan, sinh, tanh, asin, atan, asinh, and atanh are imaginary; and
the types of the others are complex.