I'm reading the various FFT algorithms and the input consists usually of real and imaginary parts. The real data can be for example an audio input and the imaginary part should be the same sized array filled with zeros. But the algorithm, for example the bit reverse part works also on the imaginary part, essentially moving zeros around. What's the point in it?
If you're using the usual Decimation-In-Time Cooley-Tukey radix-2 FFT, the buffer of samples going in need to be scrambled in order by having the indices of the samples bit-reversed. And if the FFT is a complex-input, complex-output FFT and it is given real data, yes the imaginary part is set to zero.
And, in the case of a purely real input signal, you need not bother swapping those imaginary parts in your data preparation before passing to the net FFT algorithm expecting the input to be in bit-reversed order. But you do have to bother with the real parts of the samples.