命名空间
变体
操作

clogf、clog、clogl

来自 cppreference.com
< c‎ | numeric‎ | complex
在头文件 <complex.h> 中定义
float complex       clogf( float complex z );
(1) (自 C99)
double complex      clog( double complex z );
(2) (自 C99)
long double complex clogl( long double complex z );
(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 是实数或整数,则宏调用相应的实数函数 (logfloglogl)。如果 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
  • 如果 zx+∞i(对于任何有限的 x),则结果为 +∞+πi/2
  • 如果 zx+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
  • 如果 zNaN+yi(对于任何有限的 y),则结果为 NaN+NaNi,并且可能会引发 FE_INVALID
  • 如果 zNaN+∞i,则结果为 +∞+NaNi
  • 如果 zNaN+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