cexpf, cexp, cexpl
Defined in header <complex.h> | ||
|---|---|---|
float complex cexpf( float complex z ); | (1) | (since C99) |
double complex cexp( double complex z ); | (2) | (since C99) |
long double complex cexpl( long double complex z ); | (3) | (since C99) |
Defined in header <tgmath.h> | ||
#define exp( z ) | (4) | (since C99) |
1-3) Computes the complex base-e exponential of
z.
4) Type-generic macro: If
z has type long double complex, cexpl is called. if z has type double complex, cexp is called, if z has type float complex, cexpf is called. If z is real or integer, then the macro invokes the corresponding real function (expf, exp, expl). If z is imaginary, the corresponding complex argument version is called.Parameters
| z | - | complex argument |
Return value
If no errors occur, e raised to the power of z, ez
is returned.
Error handling and special values
Errors are reported consistent with math_errhandling.
If the implementation supports IEEE floating-point arithmetic,
-
cexp(conj(z)) == conj(cexp(z)) - If
zis±0+0i, the result is1+0i - If
zisx+∞i(for any finite x), the result isNaN+NaNiandFE_INVALIDis raised. - If
zisx+NaNi(for any finite x), the result isNaN+NaNiandFE_INVALIDmay be raised. - If
zis+∞+0i, the result is+∞+0i - If
zis-∞+yi(for any finite y), the result is+0cis(y) - If
zis+∞+yi(for any finite nonzero y), the result is+∞cis(y) - If
zis-∞+∞i, the result is±0±0i(signs are unspecified) - If
zis+∞+∞i, the result is±∞+NaNiandFE_INVALIDis raised (the sign of the real part is unspecified) - If
zis-∞+NaNi, the result is±0±0i(signs are unspecified) - If
zis+∞+NaNi, the result is±∞+NaNi(the sign of the real part is unspecified) - If
zisNaN+0i, the result isNaN+0i - If
zisNaN+yi(for any nonzero y), the result isNaN+NaNiandFE_INVALIDmay be raised - If
zisNaN+NaNi, the result isNaN+NaNi
where cis(y) is cos(y) + i sin(y).
Notes
The complex exponential function ez
for z = x+iy equals to ex
cis(y), or, ex
(cos(y) + i sin(y)).
The exponential function is an entire function in the complex plane and has no branch cuts.
Example
#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
double PI = acos(-1);
double complex z = cexp(I * PI); // Euler's formula
printf("exp(i*pi) = %.1f%+.1fi\n", creal(z), cimag(z));
}Output:
exp(i*pi) = -1.0+0.0i
References
- C11 standard (ISO/IEC 9899:2011):
- 7.3.7.1 The cexp functions (p: 194)
- 7.25 Type-generic math <tgmath.h> (p: 373-375)
- G.6.3.1 The cexp functions (p: 543)
- G.7 Type-generic math <tgmath.h> (p: 545)
- C99 standard (ISO/IEC 9899:1999):
- 7.3.7.1 The cexp functions (p: 176)
- 7.22 Type-generic math <tgmath.h> (p: 335-337)
- G.6.3.1 The cexp functions (p: 478)
- G.7 Type-generic math <tgmath.h> (p: 480)
See also
|
(C99)(C99)(C99) | computes the complex natural logarithm (function) |
|
(C99)(C99) | computes e raised to the given power (ex) (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/c/numeric/complex/cexp