---
name: "cexp"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/cexp"
---

# cexp(3)

complex exponential functions

## NAME

**cexp**, **cexpf**, **cexpl** – complex exponential functions

## LIBRARY

Math Library (libm, -lm)

## SYNOPSIS

**#include \<complex.h\>**

*double* *complex*\

**cexp**(*double complex z*);

*float* *complex*\

**cexpf**(*float complex z*);

*long* *double* *complex*\

**cexpl**(*long double complex z*);

## DESCRIPTION

The **cexp**(), **cexpf**(), and **cexpl**() functions compute the complex exponential of *z*, also known as*cis*( *z*).

## RETURN VALUES

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 s are handled as would be expected from this identity given the usual rules of floating-point arithmetic. However, care is taken to avoid generating s when they are not deserved. For example, mathematically we expect that **cimag**(**cexp**(*x + I\*0*, *Fc*) = 0 regardless of the value of*x* and **cexp**() preserves this identity even if, *x* is  or . Likewise, **cexp**(*- + I\*y*) = 0 and **creal**(**cexp**( *+ I\*y*, *Fc*) =  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.

## SEE ALSO

[complex(3)](/complex/3.md), [exp(3)](/exp/3.md), [math(3)](/math/3.md)

## STANDARDS

The **cexp**(), **cexpf**(), and **cexpl**() functions conform to ISO/IEC 9899:1999 (“ISO C99”).
