csinf, csin, csinl

来自cppreference.com
< c‎ | numeric‎ | complex
 
 
 
复数算术
类型与虚数常量
(C99)
(C11)
(C99)
操作
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
幂与指数函数
(C99)
(C99)
(C99)
(C99)
三角函数
(C99)
csin
(C99)
(C99)
(C99)
(C99)
(C99)
双曲函数
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)
 
定义于头文件 <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 为实数或整数,则该宏调用对应的实数函数( sinfsinsinl )。若 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)

参阅

(C99)(C99)(C99)
计算复数余弦
(函数)
(C99)(C99)(C99)
计算复数正切
(函数)
(C99)(C99)(C99)
计算复数反正弦
(函数)
(C99)(C99)
计算正弦( sin(x)
(函数)