2017-11-21 14 views
-1

가상 부품과 실제 부품을 전환하는 추력 복소수를 반환하는 구조를 만들고 싶습니다. 하지만 내 코드는 작동하지 않습니다. 오류는 ""thrust :: complex "에서"double "까지의 변환 함수가 적합하지 않습니다."여기 내 코드가 있습니다.트러스트 콤플렉스 벡터의 가상 및 실제 부품을 전환하는 방법

struct im_harmonic 
{ 
    im_harmonic(){} 
    __device__ double operator()(thrust::complex<double>x){ 
    thrust::complex<double> z; 
    z.real(x.imag()); 
    z.imag(-x.real()); 
    return z; 
    } 
} 
+3

연산자의 반환 값은'double'입니까? 그렇습니다. –

답변

2

귀하의 운영자는 double을 반환 선언하지만 몸에 당신은 유형 thrust::complex의 값을 반환합니다. 그것이 "복잡한 것을 이중으로 변환 할 수 없습니다"라는 오류 때문입니다. 이를 극복하기 위해 연산자를 선언해야만 복잡한 값을 반환 할 수 있습니다.