Essentially I am attempting to perform an element-wise (complex by complex) 1D multiplication on the result of two separate ffts(using cufft). The complex results of both ffts are of size (N/2)+1, and I naively applied the element wise multiplication to those complex results and then took the ifft of that back to the real space.(Essentially implementing the convolution in frequency space)

Of course I scale the end result based on the N (for real), but this result is way off (when compared to the respective MATLAB implementation).

If I do not do the element-wise complex-complex multiply and just forward fft, inverse fft and then scale, I get back the correct original real input data.

So I am wondering if there is an additional scaling step before/after the element wise complex multiply which is throwing off my result?

This may be an obvious question, but my background is more in discrete math, and I do no have the experience with all the nuance of ffts. There is not much documentation in Cufft about scaling and padding, and it seems to leave this to the user.