cexp, cexpf,
cexpl — complex exponential
functions
#include
<complex.h>
double complex
cexp(double
complex z);
float complex
cexpf(float
complex z);
long double complex
cexpl(long
double complex z);
The
cexp(),
cexpf(),
and
cexpl()
functions compute the complex exponential of z, also
known as
cis(z).
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.
The cexp(),
cexpf(), and cexpl()
functions conform to ISO/IEC 9899:1999
(“ISO C99”).