numpy.fft パッケージを使用するいくつかの動作する python コードがあります。ここにスニペットがあります。
for i in range(steps):
print i
psixvec = Ux * psixvec
psikvec = Uk * np.fft.fftn(psixvec)
psixvec = np.fft.ifftn(psikvec)
return psixvec
pyfftw
パッケージを利用するために、このコードを書き直そうとしました。私が思いついたのは、次のコードです。これは機能するはずです。
fft = fftw.builders.fftn(psix_align, auto_align_input = True, auto_contiguous = True,
overwrite_input = False, threads = 1, avoid_copy = False)
ifft = fftw.builders.ifftn(psik_align, auto_align_input = True, auto_contiguous = True,
overwrite_input = False, threads = 1, avoid_copy = False)
for i in range(steps):
psix_align[:] = Ux * psix_align
psik_align[:] = Uk * fft()
psix_align[:] = ifft()
return psix_align
numpy.fft
問題は、このコードではパッケージを使用した場合と同じ結果が得られないことです。添付の画像を参照してください。