C参考手册
数值 | Numerics
cexpl
在头文件<math.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)计算复杂碱基Ë指数的z。
4)类型 - 通用宏:如果z有类型long double complex,cexpl被调用。如果z有类型double complex,cexp称为,如果z有类型float complex,cexpf称为。如果z是真实的或整数,则宏调用相应的实函数(expf,exp,expl)。如果z是虚构的,则调用相应的复杂参数版本。
参数
z |
- |
复杂的论点 |
|---|
返回值
如果没有出现错误,e 提高到电源z,ez
返回。
错误处理和特殊值
报告的错误与math_errhandling一致。
如果实现支持IEEE浮点运算,
-
cexp(conj(z))==conj(cexp(z)) - 如果
z是±0+0i,结果是1+0i - 如果
z是x+∞i(对于任何有限x),结果是NaN+NaNi并且FE_INVALID被提出。 - 如果
z是x+NaNi(对于任何有限的x),结果是NaN+NaNi并FE_INVALID可能会提出。 - 如果
z是+∞+0i,结果是+∞+0i - 如果
z是-∞+yi(对于任何有限的y),结果是+0+cis(y) - 如果
z是+∞+yi(对于任何有限的非零y),结果是+∞+cis(y) - 如果
z是-∞+∞i,结果是±0±0i(符号未指定) - 如果
z是+∞+∞i,结果是±∞+NaNi并且FE_INVALID被提出(真实部分的符号未被指定) - 如果
z是-∞+NaNi,结果是±0±0i(符号未指定) - 如果
z是+∞+NaNi,结果是±∞+NaNi(真实部分的符号未指定) - 如果
z是NaN+0i,结果是NaN+0i - 如果
z是NaN+yi(对于任何非零y),结果是NaN+NaNi并FE_INVALID可能会提出 - 如果
z是NaN+NaNi,结果是NaN+NaNi
其中cis(y)是cos(y)+ i sin(y)。
笔记
复指数函数ez
对于z = x + iy等于ex
cis(y), or, ex
(cos(y) + i sin(y)).
指数函数是复平面中的一个完整函数,并且没有分支切割。
例
#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));
}
输出:
exp(i*pi) = -1.0+0.0i
参考
- C11标准(ISO / IEC 9899:2011):
- 7.3.7.1 cexp函数(p:194)
- 7.25类型通用数学<tgmath.h>(p:373-375)
- G.6.3.1 cexp函数(p:543)
- G.7类型 - 通用数学<tgmath.h>(p:545)
- C99标准(ISO / IEC 9899:1999):
- 7.3.7.1 cexp函数(p:176)
- 7.22类型通用数学<tgmath.h>(p:335-337)
- G.6.3.1 cexp函数(p:478)
- G.7类型 - 通用数学<tgmath.h>(p:480)
加载中,请稍侯......