C语言中常用的数据类型主要int, float ,double ,char 等,但在科学运算中复数扮演着重要角色。这里讲下C语言中的复数运算以及如何调用blas,lapack库中的复数函数来进行科学计算.
1.C语言中的复数运算。
C语言中若要用的复数,需要包含头文件complex.h,下面看看一些基本的例子
#include <stdio.h> #include"complex.h" int main() { complex a, b, c, d, f; a = 1 + 2*I; b = 3 + 4*I; c = a+b; d = a*b; f = a/b; printf("complex a plus b is :%f, %f\n", creal(c), cimag(c)); printf("complex a multiply b is :%f, %f\n", creal(d), cimag(d)); printf("complex a divided b is :%f, %f\n", creal(f), cimag(f)); }
说明:
(1).creal(c), cimag(c)表示分别取复数c的实部和虚部;
(2).complex 默认是complex double 型数据结构,即实部和虚部都是double 型,当然也可以定义complex int型;
(3).虚数单位是用I来表示
生成可执行文件:
gcc -o test_complex test_complex1
得到的结果如下:
complex a plus b is :4.000000, 6.000000 complex a multiply b is :-5.000000, 10.000000