clogf, clog, clogl
From cppreference.net
|
ヘッダー
<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 | - | 複素引数 |
戻り値
エラーが発生しない場合、複素数の自然対数が返されます。その範囲は、虚軸に沿って区間 [−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++ドキュメント
for
log
|
|