2011-03-10 179 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