CppDS.com

C++ 98 11 14 17 20 手册

cacosf, cacos, cacosl

来自cppreference.com
< c‎ | numeric‎ | complex
 
 
 
复数算术
类型与虚数常量
(C99)
(C11)
(C99)
操作
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
幂与指数函数
(C99)
(C99)
(C99)
(C99)
三角函数
(C99)
(C99)
(C99)
cacos
(C99)
(C99)
(C99)
双曲函数
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
 
定义于头文件 <complex.h>
float complex       cacosf( float complex z );
(1) (C99 起)
double complex      cacos( double complex z );
(2) (C99 起)
long double complex cacosl( long double complex z );
(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 为实数或整数,则宏调用对应的实数函数( acosfacosacosl )。若 z 为虚数,则宏调用对应的复数版本。

参数

z - 复参数

返回值

若不出现错误,则返回 z 的复弧(反)余弦,于沿实轴的范围 [0 ; ∞) 且于沿虚轴的范围 [−iπ ; iπ] 中。

错误处理及特殊值

报告的错误与 math_errhandling 一致。

若实现支持 IEEE 浮点算术,则

  • cacos(conj(z)) == conj(cacos(z))
  • z±0+0i ,则结果为 π/2-0i
  • z±0+NaNi ,则结果为 π/2+NaNi
  • zx+∞i (对于任何有限 x ),则结果为 π/2-∞i
  • zx+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 (虚部符号未指定)
  • zNaN+yi (对于任何有限 y ),则结果为 NaN+NaNi 并可能引发 FE_INVALID
  • zNaN+∞i ,则结果为 NaN-∞i
  • zNaN+NaNi ,则结果为 NaN+NaNi

注意

反余弦(或弧余弦)是多值函数,要求复平面上的分支切割。约定将分支切割置于实轴的线段 (-∞,-1)(1,∞) 上。

弧(反)余弦主值的数学定义是 acos z =
1
2
π + iln(iz + 1-z2
)

对于任何 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)); // 或 CMPLX(-2, -0.0)
    printf("cacos(-2-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
 
    // 对于任何 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 standard (ISO/IEC 9899:2011):
  • 7.3.5.1 The cacos functions (p: 190)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • G.6.1.1 The cacos functions (p: 539)
  • G.7 Type-generic math <tgmath.h> (p: 545)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.3.5.1 The cacos functions (p: 172)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • G.6.1.1 The cacos functions (p: 474)
  • G.7 Type-generic math <tgmath.h> (p: 480)

参阅

(C99)(C99)(C99)
计算复数反正弦
(函数)
(C99)(C99)(C99)
计算复数反正切
(函数)
(C99)(C99)(C99)
计算复数余弦
(函数)
(C99)(C99)
计算反余弦( arccos(x)
(函数)
关闭