FreeBSD 11.0 - man page for cexp (freebsd section 3)

```CEXP(3) 						   BSD Library Functions Manual 						   CEXP(3)

NAME
cexp, cexpf -- complex exponential functions

LIBRARY
Math Library (libm, -lm)

SYNOPSIS
#include <complex.h>

double complex
cexp(double complex z);

float complex
cexpf(float complex z);

DESCRIPTION
The cexp() and cexpf() functions compute the complex exponential of z, also known as cis(z).

RETURN VALUES
For real numbers x and y, cexp() behaves according to Euler's formula:

cexp(x + I*y) = (e**x * cos(y)) + (I * e**x * sin(y))

Generally speaking, infinities, zeroes and NaNs are handled as would be expected from this identity given the usual rules of floating-point
arithmetic.  However, care is taken to avoid generating NaNs when they are not deserved.  For example, mathematically we expect that
cimag(cexp(x + I*0)) = 0 regardless of the value of x, and cexp() preserves this identity even if x is infinity or NaN.  Likewise,
cexp(-infinity + I*y) = 0 and creal(cexp(infinity + I*y)) = infinity for any y (even though the latter property is only mathematically true
for representable y.)  If y is not finite, the sign of the result is indeterminate.