2011-03-10 183 views
8

我需要乘以兩個多項式,每個都有小的積分系數。我需要一個能夠將它們進行卷積的C/C++快速FFT例程。我看過幾個庫,但它們似乎分散在多個文件中。重要的是我需要的代碼不會太長,並且可以非常容易地在一個.c/.cpp文件中使用和編譯。快速傅立葉變換

  1. FFT應該針對實際輸入進行優化,至少如果不是小整數。
  2. 如果可用,基數4的實現也可以。
  3. 編譯它應該不需要特殊的編譯標誌,因爲程序的編譯必須在我無法控制的外部環境中完成。

一個非常符合我需求的是here。但我需要兩倍的速度。

+1

你的問題是什麼?我需要一百萬美元。另外,我喜歡奶酪。很多。 – 2011-03-10 04:33:24

+1

@muntoo - 真正的多項式卷積本身就是一個重要的問題,因此我認爲它很自然地提出這個問題。我不需要FFT的全部功能,只需要一個特定的小子集,而且操作系統的實現幾乎適合我的需求,這意味着它也不是不現實的。 – 2011-03-10 04:47:25

+2

多項式有多大? FFT具有比直接卷積更好的複雜性,而且具有更高的常數,對於小問題直接卷積會更快。 – 2011-03-10 05:04:02

回答

12

對於簡單易用的FFT實現,請嘗試KissFFT。如果您需要絕對最大的性能,並且不介意有點複雜,那麼它必須是FFTW