您的位置:首页 > 编程语言 > C语言/C++

C语言下使用复数类型完成数学计算

2015-02-10 11:31 776 查看
最近因为项目需要,需要写一段复数计算的程序,项目是用C语言写的,最初想的是自己定义一个复数类型,包含实部虚部,但是完成基本运算就麻烦些,不想使用C++的话可以直接进行操作符重载,这样计算的算法是可以通用的。后来在网上查找了一下才发现,原来C99 中已经引入了两个关键字 _Complex和 _Imaginary来支持复数类型,增加了如下几种类型

float _Complex
double _Complex
long double _Complex
float _Imaginary
double _Imaginary
long double _Imaginary

使用时需要包含<complex.h>

定义复数变量时,可以如此:

double _Complex v1=3.1+5*I;
double _Complex v2=3.2+5*_Complex_I;
float _Complex v3=4.6f+12.0IF;  //必须先写i,后写f
_Complex float v4=8.2f+2.3if;
long double _Complex v5=1.23456789L+3.456789999iL; //必须先写i,后写L


除了基本的加减乘除可以直接运算外,还有以下函数可以使用:

复三角函数

反余弦

cacos
双精度版本
cacosf
单精度版本
cacosl
长双精度版本

反正弦

casin 双精度版本
casinf 单精度版本
casinl 长双精度版本

反正切

catan 双精度版本
catanf 单精度版本
catanl 长双精度版本

余弦

ccos 双精度版本
ccosf 单精度版本
ccosl 长双精度版本

正弦

csin 双精度版本
csinf 单精度版本
csinl 长双精度版本

正切

ctan 双精度版本
ctanf 单精度版本
ctanl 长双精度版本

复双曲函数

反双曲余弦

cacosh 双精度版本
cacoshf 单精度版本
cacoshl 长双精度版本

反双曲正弦

casinh 双精度版本
casinhf 单精度版本
casinhl 长双精度版本

反双曲正切

catanh 双精度版本
catanhf 单精度版本
catanhl 长双精度版本

双曲余弦

ccosh 双精度版本
ccoshf 单精度版本
ccoshl 长双精度版本

双曲正弦

csinh 双精度版本
csinhf 单精度版本
csinhl 长双精度版本

双曲正切

ctanh 双精度版本
ctanhf 单精度版本
ctanhl 长双精度版本

指数对数函数

指数

cexp 双精度版本
cexpf 单精度版本
cexpl 长双精度版本

自然对数

clog 双精度版本
clogf 单精度版本
clogl 长双精度版本

运算和绝对值

绝对值

cabs 双精度版本
cabsf 单精度版本
cabsl 长双精度版本

幂运算

cpow 双精度版本
cpowf 单精度版本
cpowl 长双精度版本

平方根

csqrt 双精度版本
csqrtf 单精度版本
csqrtl 长双精度版本

操作

相角

carg 双精度版本
cargf 单精度版本
cargl 长双精度版本

虚部

cimag 双精度版本
cimagf 单精度版本
cimagl 长双精度版本

复共轭

cong 双精度版本
congf 单精度版本
congl 长双精度版本

黎曼球面投影

cproj 双精度版本
cprojf 单精度版本
cprojl 长双精度版本

实部

creal 双精度版本
crealf 单精度版本
creall 长双精度版本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐