cacoshl
cacoshf, cacosh, cacoshl
在头文件 | | |
---|---|---|
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
complex
,cacoshl
被调用。如果z
有类型double
complex
,cacosh
称为,如果z
有类型float
complex
,cacoshf
称为。如果z
是真实的或整数,则宏调用相应的实函数(acoshf
,acosh
,acoshl
)。如果z
是虚构的,那么宏调用相应的复数版本并且返回类型是复杂的。
参数
z | - | 复杂的论点 |
---|
返回值
z
区间[0; 2]中的复数双曲余弦余弦。∞)沿实轴和间隔-iπ; +iπ沿虚轴。
错误处理和特殊值
报告的错误与math_errhandling一致。
如果实现支持IEEE浮点运算,
cacosh(conj(z))
==
conj(cacosh(z))
笔记
虽然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):