假设我们有以下构造函数..
complex(int,x,int,y){
r = x;
i = y;
}
如果我要采用3 *复数(1,2)与乘法
基本相同complex(1,2)*complex(3,0)?
我试图计算这里设置的茱莉亚,对于复杂的数字我是一个新手。谢谢你的帮助!
答案 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);
上述代码在主机代码或设备代码中同样有效。