如何打印 cufftDoubleComplex 类型的变量?

How can I print a variable of type cufftDoubleComplex?

如何在 CUDA C++ 中打印 cufftDoubleComplex 类型的变量,我尝试使用 printf:

cufftDoubleComplex Fd;
printf("%f", Fd); //not working

但是我遇到了这个错误并且在运行时它没有工作:

warning C4477: 'printf' : format string '%f' requires an argument of type 'double', but variadic argument 1 has type 'cufftDoubleComplex'

如何打印?在 printf 中使用的正确格式字符串是什么?

它将与 double[2] 布局兼容,因此只需转换它并打印两个字段:

printf("re: %f  im: %f\n", ((double*)&Fd)[0], ((double*)&Fd)[1]);

这不是"safe safe",但由于 CuFFT 承诺与 fftw 兼容,因此保证类型的布局以这种方式兼容。

编辑,这是更可取的,cufftDoubleComplex 是 cuDoubleComplex 的类型定义,它只有两个字段 x、y(错误名称):

printf("re: %f  im: %f\n", Fd.x, Fd.y);