Dear MKL forum,
I solve such a problem. Can you help me please?
Lets have a function Y=∑ k=−∞ ∞ iYneikπy and then I have a function which is defined as X=∑k=−∞ ∞ ik2Yneikπy.
I know the Y. The i is imaginary unit.
How can I compute the X? I think I do the FFT on Y and obtain thus the Yn, right? And then I think I will do the backward FFT of function defined as f=ik2Yn. But what have I do with the summation index k here in the function f?
It is right that FFT(ik2Yn)=X?
I'm not sure absolutely what to do with k when the FFT sum is summated per k. Or can I change something in MKL FFT directly?
Hi, just letting you know that I am still thinking about an elegant way to do this problem. It is turning out to be harder than I thought, and I thank you for coming up with this situation. Sorry it is taking awhile to figure out. From the first glance, I don't think we can support the sum with k^2, it is not and FFT, but I think it still may be possible to compute this in a different way still using MKL.
You have Y, the Fourier transform of Yn.
You want to compute X which is (or rather seems to be) the convolution of Y and some function whose Fourier transform is k2. If this is the case, then our recommendation is the following:
- take inverse Fourier of Y to obtain Yn
- compute elementwise multiplication k2 and y (say result is tmp)
- finally compute FFT of tmp to obtain X
MKL can do the FFT, but the elementwise multiplication of k2 and Yn can be computed by a simple loop. Use the O3 compiler optimization to get the best results out of that loop.