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, \(\small e^z\)ez is returned.

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)

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.

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

See also

clogclogfclogl
(C99)(C99)(C99)
computes the complex natural logarithm
(function)
expexpfexpl
(C99)(C99)
computes e raised to the given power (\({\small e^x}\)ex)
(function)
C++ documentation for exp

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/complex/cexp