나는 표준 라이브러리에서 작업 중이거나 (더 나은) 라이브러리에 포함시키기 위해 D 프로그래밍 언어로 변환 할 FFT 라이브러리를 찾고있다. 빠른 성능과 제로 단순성/가독성을 갖춘 uber 최적화 된 성능이 아닌 적절한 성능의 매우 간단한 FFT가 필요합니다. 그러나, 다음과 같은 요구 사항을 충족해야합니다공개 도메인 또는 이진 속성 FFT Lib이 없습니까?
중 하나를 예를 들어 순수 D. 합리적으로 번역 될 순수 D 또는 아주 간단 작성을, 어떤 인라인 어셈블러 또는 전처리 남용없이 읽을 C 코드가 작동합니다. (D에서 C에게 전화 할 수 있다는 것을 알고 있지만, 원하지 않는 이유가 있습니다.)
무료/오픈 소스, 카피 레프트가 아닌 (GPL이 아님) 바이너리 전용 배포 (BSD가 아님)에 대한 속성을 요구하지 않습니다. 허용되는 라이센스에는 Boost, zlib 및 공개 도메인이 포함됩니다.
좋은 D 인터페이스를 제공하기 위해 코드를 충분히 수정할 수 있도록 코드를 읽을 수 있어야합니다. I 은 잘 최적화되었지만 읽을 수없는 70 년대의 Fortran 코드를 원합니다. 또한 최적화 된 Fortran 코드에서 변환되어 Fortran 코드처럼 보이는 C 코드를 원하지 않습니다.
하십시오 는 상관없이 라이센스 및 단순화를 통해 성능을 위해 작성된 모두 GPL의대로, (나는 그것이 매우 좋은 이해) 얼마나 좋은 FFTW을 제안하지 않는다.
MIT 또는 (3 절) BSD와 같이 저작자 표시가 필요한 라이선스에는 어떤 문제가 있습니까? "libfftoo (c) Random Person"이라고 쓰여있는 About이나 문서의 어딘가에 줄을 지으면됩니다. – ShreevatsaR
아니면 직접 구현하지 않으시겠습니까? 아이디어는 매우 간단합니다 : http://stackoverflow.com/questions/3224823/how-exactly-do-you-compute-the-fast-fourier-transform/3226672#3226672 그리고 O (n log n) 시간에 실행됩니다. (나는 상수에 대해 모른다 ... 시도해보고 충분히 빠르지 만, 기존의 라이브러리와 인터페이스하는 방법을 알아내는 것만 큼 많은 시간이 걸린다. 링크 된 fft-cpp 코드는 그 이상은 아닙니다 (비록 복소수가 아닌 유한 필드에서 작업하는 것을 선호하지만). – ShreevatsaR
@ShreevastsaR : 이진 전용 형식으로 배포 된 저작물에 대해 저작자 표시를 요구하는 것에 대한 엄격한 정책이있는 표준 라이브러리에 기여하는 것이 목표이므로 허용하지 않습니다. 표준 라이브러리의 경우이 요구 사항은 상당히 합리적입니다. – dsimcha