3
votes

From my understanding of fft functions (eg from questions like this one)

Assumming 1D fft, given N points of real data, I'll get a double sided fft of length N (but complex) + 1 for a zeroth frequency. If I take that same fft output, and run an ifft on it, I'll get N real values, and in the ideal case, this will exactly match the original input to the fft.

In cufft, this appears to be much different.

According to Nvidia, giving N real components will result in N2 + 1 complex components for a fft, and N2+1 complex components will result in N real components.

see here (R = real, C = complex, 2 = to):

enter image description here

Note that I recognize that half of the complex components are essentially duplicated (but conjugate and reversed) and thus not necessary for the input out output values to retain all the date necessary for reconstruction, but that doesn't explain anything about how Nvidia claims the input and output data length of the fft should be structured, cufft input and output length is doing the opposite of what I would have expected from accounting for this scenario.

1
Your browser has a rendering problem. The linked page says floor(x/2)+1 (but in math notation), not x 2 + 1.Cris Luengo
This appears to be an issue with Google Chrome. When viewing the page in Chrome, all the math fields are bright red and unformatted. When viewing the page in Firefox, the math fields are correctly formatted.alter igel
At the very top of the cufft document page linked in the question, it says: "This document includes math equations (highlighted in red) which are best viewed with Firefox version 4.0 or higher, or another MathML-aware browser. There is also a PDF version of this document."Robert Crovella

1 Answers

6
votes

What you're looking at here is your browser not being able to properly render MathML content. The same table rendered in Firefox 66.0.2 seems to show what you'd expect:

enter image description here