# FreeBSD Manual Pages

```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() pre-
serves 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 indeter-
minate.