在Thrust中将原始数据转换为复数向量

时间:2018-04-04 04:33:23

标签: cuda thrust

我有一个指向交错格式的复数原始数据的指针,即交替存储的实部和虚部 - R I R I R I ...

如何将此转换为推力::复杂的主机(或设备)矢量而不会产生额外的副本? 以下不起作用 -

double dos[8] = {9.3252,2.3742,7.2362,5.3562,2.3323,2.2322,7.2362,3.2352};
thrust::host_vector<thrust::complex<double > > comp(dos, dos+8);

1 个答案:

答案 0 :(得分:2)

刚演员。像这样:

double dos[8] = {9.3252,2.3742,7.2362,5.3562,2.3323,2.2322,7.2362,3.2352};
typedef thrust::complex<double> cdub;
cdub* cdos = reinterpret_cast<cdub*>(&dos[0]);
thrust::host_vector<cdub> comp(cdos, cdos+4);

应该有用。