我想构建一个返回推力复数的结构,该数字可以切换虚部和实部。但我的代码无法正常工作。错误是“没有合适的转换函数从”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;
}
}
答案 0 :(得分:2)
您的运算符声明返回double
,但在正文中,您返回的值为thrust::complex
。这就是为什么错误&#34;没有合适的从复杂到双重的转换&#34;。为了解决这个问题,您可能必须声明您的运算符返回一个复数值:
thrust::complex<double> operator()(thrust::complex<double>x) { ..