# csinf, csin, csinl

< c‎ | numeric‎ | complex

定义于头文件 `<complex.h>` |  |
float complex csinf( float complex z ); | (1) | (C99 起)
double complex csin( double complex z ); | (2) | (C99 起)
long double complex csinl( long double complex z ); | (3) | (C99 起)
定义于头文件 `<tgmath.h>` |  |
#define sin( z ) | (4) | (C99 起)

1-3) 计算 `z` 的复正弦。
4) 泛型宏：若 `z` 拥有 long double complex 类型，则调用 `csinl` 。若 `z` 拥有 double complex 类型，则调用 `csin` ，若 `z` 拥有 float complex 类型，则调用 `csinf` 。若 `z` 为实数或整数，则该宏调用对应的实数函数（ sinf 、 sin 、 sinl ）。若 `z` 是虚数，则该宏调用函数 sinh 的对应实数版本，实现公式 sin(iy) = i sinh(y) ，且宏的返回类型为虚数。

### 参数

z | - | 复参数

### 返回值

若无错误发生，则为 `z` 的复正弦。

错误和特殊情况的处理如同运算以 -I * csinh(I*z) 实现。

### 注意

正弦在复平面上是整函数，而且没有分支切割。

正弦的数学定义是 sin z =

eiz -e-iz
2i

。

### 示例

    #include <stdio.h>
    #include <math.h>
    #include <complex.h>

    int main(void)
    {
        double complex z = csin(1);  // 表现如同沿着实轴的实数正弦
        printf("sin(1+0i) = %f%+fi ( sin(1)=%f)\n", creal(z), cimag(z), sin(1));

        double complex z2 = csin(I); // 表现如同沿着虚轴的sinh
        printf("sin(0+1i) = %f%+fi (sinh(1)=%f)\n", creal(z2), cimag(z2), sinh(1));
    }

输出：

    sin(1+0i) = 0.841471+0.000000i ( sin(1)=0.841471)
    sin(0+1i) = 0.000000+1.175201i (sinh(1)=1.175201)

### 引用

- C11 标准（ISO/IEC 9899:2011）：

  - 7.3.5.5 The csin functions (p: 191-192)

  - 7.25 Type-generic math <tgmath.h> (p: 373-375)

  - G.7 Type-generic math <tgmath.h> (p: 545)

- C99 标准（ISO/IEC 9899:1999）：

  - 7.3.5.5 The csin functions (p: 173)

  - 7.22 Type-generic math <tgmath.h> (p: 335-337)

  - G.7 Type-generic math <tgmath.h> (p: 480)

### 参阅

ccos ccosf ccosl (C99)(C99)(C99) | 计算复数余弦 (函数)
ctan ctanf ctanl (C99)(C99)(C99) | 计算复数正切 (函数)
casin casinf casinl (C99)(C99)(C99) | 计算复数反正弦 (函数)
sin sinf sinl (C99)(C99) | 计算正弦（ \({\small\sin{x} }\)sin(x) ） (函数)