cufft for real data - api doc


The cufft api document states on p11:

“…the real data API exists primarily for convenience, so that users do not have to build interleaved complete data from a real data source before using the library…”

Based on this statement I assumed that cufftExecR2C() would perform a forward fft of real data without having to convert a cufftReal array to a cufftComplex array and using cufftExecC2C().

However, only on implementing did I notice that cufftExecR2C() doesn’t include a “direction” argument and states on p9 of the api that it is “implicitly inverse”.

Thus, the statement on p11 about the real data api existing primarily for convenience appears incorrect and that the real data api only supports inverse transforms.

Am I misreading this API or is this correct?



Using R2C you don’t need a direction because it’s implicit that the input data is real and the output is complex using a forward transfer of real data. You use C2R for an inverse transform where you are aware that the input and output could be complex, but you wish to discard the complex data at the output. Hence direction is implicit in both cases.