非常教程

C参考手册

数值 | Numerics

cacosh

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

float complex cacoshf( float complex z );

(1)

(since C99)

double complex cacosh( double complex z );

(2)

(since C99)

long double complex cacoshl( long double complex z );

(3)

(since C99)

Defined in header <tgmath.h>

#define acosh( z )

(4)

(since C99)

1-3)计算一个复数值的复双弧余弦值,z其中分支沿着实轴的值小于1。

4)类型 - 通用宏:如果z有类型long double complexcacoshl被调用。如果z有类型double complexcacosh称为,如果z有类型float complexcacoshf称为。如果z是真实的或整数,则宏调用相应的实函数(acoshfacoshacoshl)。如果z是虚构的,那么宏调用相应的复数版本并且返回类型是复杂的。

参数

z

-

复杂的论点

返回值

z区间[0; 2]中的复数双曲余弦余弦。∞)沿实轴和间隔-iπ; +iπ沿虚轴。

错误处理和特殊值

报告的错误与math_errhandling一致。

如果实现支持IEEE浮点运算,

  • cacosh(conj(z)) == conj(cacosh(z))
  • 如果z±0+0i,结果是+0+iπ/2
  • 如果z+x+∞i(对于任何有限的x),结果是+∞+iπ/2
  • 如果z+x+NaNi(对于任何[1]有限x),结果是NaN+NaNi并且FE_INVALID可能会被提出。
  • 如果z-∞+yi(对于任何有限的y),结果是+∞+iπ
  • 如果z+∞+yi(对于任何有限的y),结果是+∞+0i
  • 如果z-∞+∞i,结果是+∞+3iπ/4
  • 如果z±∞+NaNi,结果是+∞+NaNi
  • 如果zNaN+yi(对于任何有限的y),结果是NaN+NaNi并且FE_INVALID可能会被提出。
  • 如果zNaN+∞i,结果是+∞+NaNi
  • 如果zNaN+NaNi,结果是NaN+NaNi
  • 每DR471,这只适用于非零x。如果z0+NaNi,结果应该是NaN+iπ/2

笔记

虽然C标准把这个函数命名为“复曲线双曲余弦”,但双曲函数的反函数是区域函数。他们的论点是双曲线领域,而不是弧线。正确的名称是“复反双曲余弦”,不太常见的是“复曲面双曲余弦”。

反双曲余弦是一个多值函数,需要在复平面上进行分支切分。分支切割通常放置在实轴的线段(-∞,+ 1)处。

反双曲正弦的主值的数学定义是acosh z = ln(z +√z+ 1 +√z-1)对于任何z,acosh(z)=

| √z-1 |

|:----|

| √1-z |

acos(z),或者简单地说i复数(z)在复平面的上半部分。

#include <stdio.h>
#include <complex.h>
 
int main(void)
{
    double complex z = cacosh(0.5);
    printf("cacosh(+0.5+0i) = %f%+fi\n", creal(z), cimag(z));
 
    double complex z2 = conj(0.5); // or cacosh(CMPLX(0.5, -0.0)) in C11
    printf("cacosh(+0.5-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
 
    // in upper half-plane, acosh(z) = i*acos(z) 
    double complex z3 = casinh(1+I);
    printf("casinh(1+1i) = %f%+fi\n", creal(z3), cimag(z3));
    double complex z4 = I*casin(1+I);
    printf("I*asin(1+1i) = %f%+fi\n", creal(z4), cimag(z4));
}

输出:

cacosh(+0.5+0i) = 0.000000-1.047198i
cacosh(+0.5-0i) (the other side of the cut) = 0.500000-0.000000i
casinh(1+1i) = 1.061275+0.666239i
I*asin(1+1i) = -1.061275+0.666239i

参考

  • C11标准(ISO / IEC 9899:2011):
    • 7.3.6.1可用的功能(p:192)
    • 7.25类型通用数学<tgmath.h>(p:373-375)
    • G.6.2.1可用的功能(p:539-540)
    • G.7类型 - 通用数学<tgmath.h>(p:545)
  • C99标准(ISO / IEC 9899:1999):
    • 7.3.6.1 cacosh功能(p:174)
    • 7.22类型通用数学<tgmath.h>(p:335-337)
    • G.6.2.1可可功能(p:474-475)
    • G.7类型 - 通用数学<tgmath.h>(p:480)
C

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