Cuda 将原始数据转换为推力中的复数向量

Cuda 将原始数据转换为推力中的复数向量,cuda,thrust,Cuda,Thrust,我有一个指针指向交错格式的复数原始数据,即交替存储的实部和虚部-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); double-do

我有一个指针指向交错格式的复数原始数据,即交替存储的实部和虚部-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);
double-dos[8]={9.3252,2.3742,7.2362,5.3562,2.3323,2.2322,7.2362,3.2352};
推力:主机向量comp(dos,dos+8);

刚刚开始。大概是这样的:

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);
double-dos[8]={9.3252,2.3742,7.2362,5.3562,2.3323,2.2322,7.2362,3.2352};
类型定义推力::复杂cdub;
cdub*cdos=reinterpret_cast(&dos[0]);
推力:主机向量comp(CDO,CDO+4);

应该能行。

就投吧。大概是这样的:

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);
double-dos[8]={9.3252,2.3742,7.2362,5.3562,2.3323,2.2322,7.2362,3.2352};
类型定义推力::复杂cdub;
cdub*cdos=reinterpret_cast(&dos[0]);
推力:主机向量comp(CDO,CDO+4);
应该有用