clogf, clog, clogl
来自 cppreference.cn
                    
                                        
                    
                    
                                                            
                    | 定义在头文件  <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 | |


