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>
定义复数变量时,可以如此:
除了基本的加减乘除可以直接运算外,还有以下函数可以使用:
复三角函数
反余弦
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 长双精度版本
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 长双精度版本
相关文章推荐
- Java中使用Socket完成简单的远程计算(含粗糙界面和正则表达式判断数字类型)
- C语言编程艺术--C语言中enum变量类型的使用
- 使用类型化DataSet时,通过延迟DataTable的Expression列计算来提高Fill的性能
- 关于C语言中的Complex(复数类型)和imaginary(虚数类型)
- C语言中类型转换时的截取规则及补码表示的计算方法
- 在C语言的宏中使用类型关键字
- [读书笔记][Effective Java]不要在精确计算中使用float和double类型
- Windows环境是使用C语言计算程序或算法执行时间的不同粒度实现
- C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,
- 小谈C语言中常见数据类型在32及64位机上的使用
- 我的第一个Qt程序:使用Qt creator和Qt designer完成"HelloWorld"和计算圆面积的程序设计
- 汉诺塔:非递归,非堆栈,使用C语言完成。希望多多交流,学习。
- 在OpenGL中使用整数类型纹理进行计算【转】
- 学习51笔记与一份从网上找的资料:单片机C语言中_nop_函数的使用及C语言的延时计算2010-
- 使用java BigDecimal完成圆周率π的计算
- 编一个程序,完成64位数据(无符号)的加法、减法运算。不允许直接使用64位的数据类型。(未完成)
- 使用宏模拟C++模版完成简单数据类型的交换
- 抄书:C语言中字符类型使用中的几个误区
- C语言计算数学公式
- c语言数据类型定义和总结构体的使用