2010-07-29 2 views
3

나는 표준 라이브러리에서 작업 중이거나 (더 나은) 라이브러리에 포함시키기 위해 D 프로그래밍 언어로 변환 할 FFT 라이브러리를 찾고있다. 빠른 성능과 제로 단순성/가독성을 갖춘 uber 최적화 된 성능이 아닌 적절한 성능의 매우 간단한 FFT가 필요합니다. 그러나, 다음과 같은 요구 사항을 충족해야합니다공개 도메인 또는 이진 속성 FFT Lib이 없습니까?

  1. 중 하나를 예를 들어 순수 D. 합리적으로 번역 될 순수 D 또는 아주 간단 작성을, 어떤 인라인 어셈블러 또는 전처리 남용없이 읽을 C 코드가 작동합니다. (D에서 C에게 전화 할 수 있다는 것을 알고 있지만, 원하지 않는 이유가 있습니다.)

  2. 무료/오픈 소스, 카피 레프트가 아닌 (GPL이 아님) 바이너리 전용 배포 (BSD가 아님)에 대한 속성을 요구하지 않습니다. 허용되는 라이센스에는 Boost, zlib 및 공개 도메인이 포함됩니다.

  3. 좋은 D 인터페이스를 제공하기 위해 코드를 충분히 수정할 수 있도록 코드를 읽을 수 있어야합니다. I 은 잘 최적화되었지만 읽을 수없는 70 년대의 Fortran 코드를 원합니다. 또한 최적화 된 Fortran 코드에서 변환되어 Fortran 코드처럼 보이는 C 코드를 원하지 않습니다.

하십시오 는 상관없이 라이센스 및 단순화를 통해 성능을 위해 작성된 모두 GPL의대로, (나는 그것이 매우 좋은 이해) 얼마나 좋은 FFTW을 제안하지 않는다.

+1

MIT 또는 (3 절) BSD와 같이 저작자 표시가 필요한 라이선스에는 어떤 문제가 있습니까? "libfftoo (c) Random Person"이라고 쓰여있는 About이나 문서의 어딘가에 줄을 지으면됩니다. – ShreevatsaR

+2

아니면 직접 구현하지 않으시겠습니까? 아이디어는 매우 간단합니다 : http://stackoverflow.com/questions/3224823/how-exactly-do-you-compute-the-fast-fourier-transform/3226672#3226672 그리고 O (n log n) 시간에 실행됩니다. (나는 상수에 대해 모른다 ... 시도해보고 충분히 빠르지 만, 기존의 라이브러리와 인터페이스하는 방법을 알아내는 것만 큼 많은 시간이 걸린다. 링크 된 fft-cpp 코드는 그 이상은 아닙니다 (비록 복소수가 아닌 유한 필드에서 작업하는 것을 선호하지만). – ShreevatsaR

+0

@ShreevastsaR : 이진 전용 형식으로 배포 된 저작물에 대해 저작자 표시를 요구하는 것에 대한 엄격한 정책이있는 표준 라이브러리에 기여하는 것이 목표이므로 허용하지 않습니다. 표준 라이브러리의 경우이 요구 사항은 상당히 합리적입니다. – dsimcha

답변

4

Kiss FFT (Mark Borgerding)은 BSD 라이선스가 있다는 것을 제외하고는 귀하의 요구 사항을 충족합니다. 그에게 연락하여 라이센스 면제에 관심이 있는지 확인하는 것이 좋습니다. 약간의 사전 프로세서 남용이 있지만 고정 및 부동 소수점 데이터 유형 만 처리 할 수 ​​있습니다.

+0

+1 키스 FFT 용 –