用标量乘以复数,ex(2-6i)* 3

时间:2014-03-06 04:33:36

标签: c cuda complex-numbers

假设我们有以下构造函数..

 complex(int,x,int,y){
 r = x;
 i = y;
 }

如果我要采用3 *复数(1,2)与乘法

基本相同
complex(1,2)*complex(3,0)?

我试图计算这里设置的茱莉亚,对于复杂的数字我是一个新手。谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

是的,但是你编写它的方式与C或C ++或CUDA不匹配。

如果你有一个复数(2-6i)并且你想将它乘以3,那就等于乘以(3 + 0i)。

如果你想在CUDA中使用复数,我会省去一些麻烦,并从你做的所有定义开始:

#include <cuComplex.h>

(在标准的Linux CUDA安装上,这将在/usr/local/cuda/include

在使用nvcc编译的任何.cu文件中使用它。你需要使用复数的地方。

如果您熟悉该头文件,那么您可以节省一些时间来手动构建这些内容。

有一些函数可以构建复数,并对它们进行各种类型的算术运算。你也可以在这里搜索更多高级功能,如极性转换等。

wikipedia article也很好读。

以下是乘法(2-6i)*(3 + 0i)的示例代码:

cuDoubleComplex a, b, c;
a = make_cuDoubleComplex(2, -6);
b = make_cuDoubleComplex(3,  0);
c = cuCmul(a, b);

上述代码在主机代码或设备代码中同样有效。