cacosf, cacos, cacosl
來自 cppreference.com
定義在標頭檔案 <complex.h> 中 |
||
(1) | (C99 起) | |
(2) | (C99 起) | |
(3) | (C99 起) | |
定義於標頭檔案 <tgmath.h> |
||
#define acos( z ) |
(4) | (C99 起) |
1-3) 計算
z
的複數反餘弦,在實軸上區間 [−1,+1] 之外帶分支切口。4) 泛型宏:若
z
的型別為 long double complex,則呼叫 cacosl
。若 z
的型別為 double complex,則呼叫 cacos
。若 z
的型別為 float complex,則呼叫 cacosf
。若 z
為實數或整數,則宏呼叫對應的實函式(acosf、acos、acosl)。若 z
為虛數,則宏呼叫對應的複數版本。目錄 |
[編輯] 引數
z | - | 複數引數 |
[編輯] 返回值
若無錯誤發生,返回 z
的複數反餘弦,其範圍為沿虛軸無界、沿實軸在區間 [0; π] 內的條帶。
[編輯] 錯誤處理與特殊值
錯誤報告與 math_errhandling 一致。
如果實現支援 IEEE 浮點算術,
- cacos(conj(z)) == conj(cacos(z))
- 若
z
為±0+0i
,則結果為π/2-0i
- 若
z
為±0+NaNi
,則結果為π/2+NaNi
- 若
z
為x+∞i
(對於任意有限 x),則結果為π/2-∞i
- 若
z
為x+NaNi
(對於任意非零有限 x),則結果為NaN+NaNi
且可能引發 FE_INVALID。 - 若
z
為-∞+yi
(對於任意正有限 y),則結果為π-∞i
- 若
z
為+∞+yi
(對於任意正有限 y),則結果為+0-∞i
- 若
z
為-∞+∞i
,則結果為3π/4-∞i
- 若
z
為+∞+∞i
,則結果為π/4-∞i
- 若
z
為±∞+NaNi
,則結果為NaN±∞i
(虛部的符號未指定) - 若
z
為NaN+yi
(對於任意有限 y),則結果為NaN+NaNi
且可能引發 FE_INVALID - 若
z
為NaN+∞i
,則結果為NaN-∞i
- 若
z
為NaN+NaNi
,則結果為NaN+NaNi
[編輯] 注意
反餘弦(或弧餘弦)是一個多值函式,需要在複平面上有一個分支切割。分支切割通常放置在實軸的線段 (-∞,-1) 和 (1,∞) 上。
反餘弦主值的數學定義為 acos z =1 |
2 |
)
對於任意 z,acos(z) = π - acos(-z)
[編輯] 示例
執行此程式碼
#include <stdio.h> #include <math.h> #include <complex.h> int main(void) { double complex z = cacos(-2); printf("cacos(-2+0i) = %f%+fi\n", creal(z), cimag(z)); double complex z2 = cacos(conj(-2)); // or CMPLX(-2, -0.0) printf("cacos(-2-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2)); // for any z, acos(z) = pi - acos(-z) double pi = acos(-1); double complex z3 = ccos(pi-z2); printf("ccos(pi - cacos(-2-0i) = %f%+fi\n", creal(z3), cimag(z3)); }
輸出
cacos(-2+0i) = 3.141593-1.316958i cacos(-2-0i) (the other side of the cut) = 3.141593+1.316958i ccos(pi - cacos(-2-0i) = 2.000000+0.000000i
[編輯] 參考文獻
- C11 標準 (ISO/IEC 9899:2011)
- 7.3.5.1 cacos 函式 (p: 190)
- 7.25 型別通用數學 <tgmath.h> (p: 373-375)
- G.6.1.1 cacos 函式 (p: 539)
- G.7 型別通用數學 <tgmath.h> (p: 545)
- C99 標準 (ISO/IEC 9899:1999)
- 7.3.5.1 cacos 函式 (p: 172)
- 7.22 型別通用數學 <tgmath.h> (p: 335-337)
- G.6.1.1 cacos 函式 (p: 474)
- G.7 型別通用數學 <tgmath.h> (p: 480)
[編輯] 另請參閱
(C99 起)(C99 起)(C99 起) |
計算復反正弦 (函式) |
(C99 起)(C99 起)(C99 起) |
計算復反正切 (函式) |
(C99 起)(C99 起)(C99 起) |
計算復餘弦 (函式) |
(C99 起)(C99 起) |
計算反餘弦 (arccos(x)) (函式) |
C++ 文件 用於 acos
|