非常教程

C参考手册

数值 | Numerics

cacosf

在头文件<math.h>中定义

float complex cacosf( float complex z );

(1)

(since C99)

double complex cacos( double complex z );

(2)

(since C99)

long double complex cacosl( long double complex z );

(3)

(since C99)

Defined in header <tgmath.h>

#define acos( z )

(4)

(since C99)

1-3)z沿实轴计算在区间-1,+ 1之外的分支切口的复余弦余弦。

4)类型 - 通用宏:如果z有类型long double complexcacosl被调用。如果z有类型double complexcacos称为,如果z有类型float complexcacosf称为。如果z是真实的或整数,则宏调用相应的实函数(acosfacosacosl)。如果z是虚构的,则宏调用相应的复数版本。

参数

z

-

复杂的论点

返回值

如果没有发生错误,z则返回复余弦反射余弦值,范围为[0; ∞)沿实轴和在范围- π; 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 |

π + _i_ln(_i_z + √1-z2

)

对于任何一个,acos(z)=π - acos(-z)。

Example

#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)
C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。