首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

C99 基准对复数类型和复数运算的支持

2012-11-08 
C99 标准对复数类型和复数运算的支持最近写计算程序经常要用到复数运算,以前都是用 gsl 库中对复数运算的

C99 标准对复数类型和复数运算的支持

最近写计算程序经常要用到复数运算,以前都是用 gsl 库中对复数运算的支持。这两天看了看C99 标准,发现C99 中对复数运算的支持还是蛮给力的,这里做个总结。C99 中引入了两个关键字 _Complex和 _Imaginary,并且定义了如下的复数类型:

#include <stdio.h>#include <complex.h>int main(void){    double _Complex a = 1.0 + 2.0 * I;    double _Complex  b = 5.0 + 4.0 * I;    printf("a = %f + %fi\n", creal(a), cimag(a));    printf("b = %f + %fi\n", creal(b), cimag(b));    a *= b;    printf("a * b = %f + %fi\n", creal(a), cimag(a));    a = csin(b);    printf("sin(b) = %f + %fi\n", creal(a), cimag(a));   return 0;}

除了这里用到的几个函数之外,gcc 提供的支持复数运算的函数还很多,这里总结如下。
函数名        简介
cacos()        反余弦
casin()        反正弦
catan()        反正切
ccos()        余弦
csin()        正弦
ctan()        正切
cacosh()    反双曲余弦
casinh()    反双曲正弦
catanh()    反双曲正切
ccosh()        双曲余弦
csinh()        双曲正弦
ctanh()        双曲正切
cexp()        指数函数
clog()        对数函数
cpow(x,y)    x 的y 次方
csqrt        平方根
cabs        复数的模
carg        角
conj        共轭
cproj        投影
cimag        取虚部
creal        取实部


热点排行