clogf、clog、clogl
来自 cppreference.com
在头文件 <complex.h> 中定义 |
||
(1) | (自 C99) | |
(2) | (自 C99) | |
(3) | (自 C99) | |
在头文件 <tgmath.h> 中定义 |
||
#define log( z ) |
(4) | (自 C99) |
1-3) 计算
z
的复自然(以 e 为底)对数,分支切割沿着负实轴。4) 类型泛型宏:如果
z
的类型为 long double complex,则调用 clogl
。如果 z
的类型为 double complex,则调用 clog
。如果 z
的类型为 float complex,则调用 clogf
。如果 z
是实数或整数,则宏调用相应的实数函数 (logf,log,logl)。如果 z
是虚数,则调用相应的复数版本。内容 |
[编辑] 参数
z | - | 复数参数 |
[编辑] 返回值
如果未发生错误,则返回 z
的复自然对数,该对数位于沿虚轴的间隔 [−iπ, +iπ] 中的条带范围内,并且在实轴上数学上无界。
[编辑] 错误处理和特殊值
错误报告与 math_errhandling 一致。
如果实现支持 IEEE 浮点算术,
- 函数在分支切割上是连续的,考虑了虚部的符号。
- clog(conj(z)) == conj(clog(z))
- 如果
z
为-0+0i
,则结果为-∞+πi
,并且会引发 FE_DIVBYZERO - 如果
z
为+0+0i
,则结果为-∞+0i
,并且会引发 FE_DIVBYZERO - 如果
z
为x+∞i
(对于任何有限的 x),则结果为+∞+πi/2
- 如果
z
为x+NaNi
(对于任何有限的 x),则结果为NaN+NaNi
,并且可能会引发 FE_INVALID - 如果
z
为-∞+yi
(对于任何有限的正 y),则结果为+∞+πi
- 如果
z
为+∞+yi
(对于任何有限的正 y),则结果为+∞+0i
- 如果
z
为-∞+∞i
,则结果为+∞+3πi/4
- 如果
z
为+∞+∞i
,则结果为+∞+πi/4
- 如果
z
为±∞+NaNi
,则结果为+∞+NaNi
- 如果
z
为NaN+yi
(对于任何有限的 y),则结果为NaN+NaNi
,并且可能会引发 FE_INVALID - 如果
z
为NaN+∞i
,则结果为+∞+NaNi
- 如果
z
为NaN+NaNi
,则结果为NaN+NaNi
[编辑] 说明
复数 z 的自然对数,其极坐标分量为 (r,θ) 等于 ln r + i(θ+2nπ),主值为 ln r + iθ
[编辑] 示例
运行此代码
#include <stdio.h> #include <math.h> #include <complex.h> int main(void) { double complex z = clog(I); // r = 1, θ = pi/2 printf("2*log(i) = %.1f%+fi\n", creal(2*z), cimag(2*z)); double complex z2 = clog(sqrt(2)/2 + sqrt(2)/2*I); // r = 1, θ = pi/4 printf("4*log(sqrt(2)/2+sqrt(2)i/2) = %.1f%+fi\n", creal(4*z2), cimag(4*z2)); double complex z3 = clog(-1); // r = 1, θ = pi printf("log(-1+0i) = %.1f%+fi\n", creal(z3), cimag(z3)); double complex z4 = clog(conj(-1)); // or clog(CMPLX(-1, -0.0)) in C11 printf("log(-1-0i) (the other side of the cut) = %.1f%+fi\n", creal(z4), cimag(z4)); }
输出
2*log(i) = 0.0+3.141593i 4*log(sqrt(2)/2+sqrt(2)i/2) = 0.0+3.141593i log(-1+0i) = 0.0+3.141593i log(-1-0i) (the other side of the cut) = 0.0-3.141593i
[编辑] 参考文献
- C11 标准 (ISO/IEC 9899:2011)
- 7.3.7.2 clog 函数 (p: 195)
- 7.25 类型泛型数学 <tgmath.h> (p: 373-375)
- G.6.3.2 clog 函数 (p: 543-544)
- G.7 类型泛型数学 <tgmath.h> (p: 545)
- C99 标准 (ISO/IEC 9899:1999)
- 7.3.7.2 clog 函数 (p: 176-177)
- 7.22 类型泛型数学 <tgmath.h> (p: 335-337)
- G.6.3.2 clog 函数 (p: 478-479)
- G.7 类型泛型数学 <tgmath.h> (p: 480)
[编辑] 另请参见
(C99)(C99)(C99) |
计算复以 e 为底的指数 (函数) |
(C99)(C99) |
计算自然(以 e 为底)对数 (ln(x)) (函数) |
C++ 文档 针对 log
|