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”).