casin
casinf, casin, casinl
在头文件 | | |
---|---|---|
float complex casinf( float complex z | (1) | (since C99) |
double complex casin( double complex z | (2) | (since C99) |
long double complex casinl( long double complex z | (3) | (since C99) |
Defined in header <tgmath.h> | | |
#define asin( z ) | (4) | (since C99) |
1-3)z
沿实轴计算在区间-1,+ 1之外的分支切割的复合反正弦。
4)类型 - 通用宏:如果z
有类型long
double
complex
,casinl
被调用。如果z
有类型double
complex
,casin
称为,如果z
有类型float
complex
,casinf
称为。如果z
是真实的或整数,则宏调用相应的实函数(asinf
,asin
,asinl
)。如果z
是虚构的,那么宏调用相应的函数的实际版本asinh
,实现公式asin
(iy)= i asinh
(y),并且宏的返回类型是虚构的。
参数
z | - | 复杂的论点 |
---|
返回值
如果没有出现错误,z
则在沿虚轴无界且在-π/ 2区间内的条带范围内返回复合反正弦。+π/ 2沿实轴。
错误和特殊情况被处理,就像操作被执行一样-I *
casinh(I*z)
。
笔记
反正弦(或反正弦)是一种多值函数,需要在复平面上进行分支切割。通常将分支切割放置在实轴的线段(-∞,-1)和(1,∞)处。
反正弦的主值的数学定义为asin z = -_i_ln(_i_z +√1-z2
)对于asin(z)= acos(-z) - 中的任何一个,
| π |
|:----|
| 2 |
例
#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
double complex z = casin(-2
printf("casin(-2+0i) = %f%+fi\n", creal(z), cimag(z)
double complex z2 = casin(conj(-2) // or CMPLX(-2, -0.0)
printf("casin(-2-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2)
// for any z, asin(z) = acos(-z) - pi/2
double pi = acos(-1
double complex z3 = csin(cacos(conj(-2))-pi/2
printf("csin(cacos(-2-0i)-pi/2) = %f%+fi\n", creal(z3), cimag(z3)
}
输出:
casin(-2+0i) = -1.570796+1.316958i
casin(-2-0i) (the other side of the cut) = -1.570796-1.316958i
csin(cacos(-2-0i)-pi/2) = 2.000000+0.000000i
参考
- C11标准(ISO / IEC 9899:2011):