3

我正在寻找一个 FFT 库来翻译成 D 编程语言,以便包含在我正在研究的库中或(更好)标准库中。我需要一个相当简单且性能良好的 FFT,而不是一个具有极快性能和零简单性/可读性的超级优化的 FFT。但是,它必须满足以下要求:

  1. 要么用纯 D 编写,要么简单到可以合理地翻译成纯 D。例如,没有任何内联汇编程序或预处理器滥用的可读 C 代码将起作用。(我知道你可以从 D 调用 C,但我有我不想这样做的理由。)

  2. 根据免费/开源、非 Copyleft(即不是 GPL)的条款获得许可,并且不需要对仅二进制分发(即不是 BSD)的归属。可接受的许可证包括 Boost、zlib 和公共领域。

  3. 代码必须足够可读,以便我可以明智地修改它,给它一个漂亮的 D 接口。我想要 70 年代的超级优化但不可读的 Fortran 代码,不管它工作得多么好。我也不想要从超级优化的 Fortran 代码翻译的 C 代码,看起来像 Fortran 代码。

不要推荐 FFTW,不管它有多好(我理解它非常好),因为它是 GPL 许可的,并且是为了性能而不是简单而编写的。

4

1 回答 1

4

Mark Borgerding 编写的Kiss FFT符合您的要求,但它是 BSD 许可的。您可能值得花时间联系他,看看他是否有兴趣为您提供许可证的例外情况。有一些预处理器滥用,但仅用于处理定点和浮点数据类型。

于 2010-07-29T16:10:57.650 回答