views:

2966

answers:

9

I am looking for a FFT library with a license that allow me to include it in a commercial C++ software. Free would be nice. (Intel IPPS is 199$ per head, which is a bit expensive for the number of developper that will be compiling it.)

Anybody has good experience with such a FFT library?

I found this page, which list a lot of libraries: http://www.fftw.org/benchfft/ffts.html

FFTW has a GPL license, so it won't work. Any good alternative?

A: 

Something like this?

ctacke
A: 

Do you need the sources too? Does it have to be free, as in beer?

If not, then the Intel IPP library at least gives you excellent performance, assuming that your platform is among the ones supported.

Pukku
Source are not needed if it's a reliable one. (like Intel's one)Source required if it's from a one-man show.Free would be better:)
decasteljau
+2  A: 

According to the FFTW documentation a non-GPL license is also available (presumably for $). You have to contact them for details.

Steve Fallows
interesting, thanks
decasteljau
by the way, I contacted them twice and got no answer. So that option was not viable. KissFFT was the winner.
decasteljau
+5  A: 

KissFFT

Some benchmarks comparing to fftw:

http://www.fftw.org/speed/Pentium4-2.4GHz-gcc/

robottobor
A: 

You can take a look at Numerical Recipes. It is not free, but less expensive than IPP :). I have used NR, but not the FFT.

Dani van der Meer
If he wants to use it in commercial software, I don't see how using Numerical Recipes is a good idea.
dfrankow
Do you mean the license? I suppose the license now is more strict than when I used it. But as I understand it you can still use it in commercial software if you get permission.
Dani van der Meer
A: 

Laurent de Soras' FFTReal is very fast, and LGPL'd, meaning that you can use it in commercial software without needing to pay licensing nor make your software open-source. You just need to credit the author if you use it in your software (and he deserves it!).

Nik Reiman
...and you also need to organise things so that the end user can replace the shipped version with a version of their choosing (see section 4). This means dynamic linking, shipping object files for program, etc. Not always practical or possible. (To say nothing of any support or legal issues.) IANAL.
brone
A: 

I found the commercial FFTW not affordable. (They wanted about a one-time fee of about $8000 I believe for a commercial license.) You may find that the Intel library is not as expensive as you think. We are using the Intel MKL (Math Kernel Library) and since it is designed to be redistributed (with static or dynamic linkage) as part of a commercial library you may be able to get a license only for a few developers that make heavy use of it. In order to do so, whatever those developers create must be placed in a separate library (as by the license the other developers cannot use the Intel library directly, including the headers). The only caveat is that the exposed parts of that library must add significant functionality beyond the Intel library (i.e., creating an FFT wrapper and use that one as a library others can access would violate the license agreement). (Interpret the license in the sense that the non-math developers are "customers" of the math-developers.)

Just read the license agreement carefully and decide if you can apply this approach to your library of choice (IPPS).

ILoveFortran