cexpf, cexp, cexpl - cppreference.com (original) (raw)

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.

  1. 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.

Contents

[edit] Parameters

[edit] Return value

If no errors occur, e raised to the power of z, \(\small e^z\)ez
is returned.

[edit] Error handling and special values

Errors are reported consistent with math_errhandling.

If the implementation supports IEEE floating-point arithmetic,

where \(\small{\rm cis}(y)\)cis(y) is \(\small \cos(y)+{\rm i}\sin(y)\)cos(y) + i sin(y)

[edit] Notes

The complex exponential function \(\small e^z\)ez
for \(\small z = x + {\rm i}y\)z = x+iy equals \(\small e^x {\rm cis}(y)\)ex
cis(y), or, \(\small e^x (\cos(y)+{\rm i}\sin(y))\)ex
(cos(y) + i sin(y))

The exponential function is an entire function in the complex plane and has no branch cuts.

[edit] 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:

[edit] References

[edit] See also