fftw for Debian --------------- Note: k6fftwgel and k7fftwgel only contain single precision routines at this time. p4fftwgel only contains double precision routines. There are a number of Debian packages for fftw. For any architecture, you will need the base package which contains the shared libraries (for non-i386 there is only fftw2). For i386, there is a choice of packages. The one you select is based on your cpu: Arch Base Package Devel Package Precision Provided i386 (AMD K6-2) k6fftw2 k6fftw-dev single i386 (AMD K7) k7fftw2 k7fftw-dev single i386 (Pentium and above) p4fftw2 p4fftw-dev double i386 (any) fftw2 fftw-dev double i386 (any) sfftw2 sfftw-dev single sparc (UltraSPARC-I) pfftw2 (*) pfftw-dev all others fftw2 fftw-dev double all others sfftw2 sfftw-dev single (*) Still under development so not released yet When there is a choice, the original fftw will still work, but there can be a dramatic speedup if you choose the version specifically geared for your processor. The -dev version of a package contains the headers and a statically linked copy of the libraries. You need to install this if you intend to compile a program which uses fftw. Be careful when compiling against the static libs as the library linker (ld) looks for shared libraries first. Some people prefer to use static libraries as there can be a speed advantage (3-30%) on register starved architectures (like x86 machines). The package also contains a threaded version of fftw. Using the threaded version is almost identical to using the non- threaded version, but the function calls are renamed and you need to call a special function first to handle some housekeeping. See the documentation for details. The packages also contain mpi based libraries. Mpi is a system for spreading computations over multiple machines. This relies on the mpich package. The fftw packages do not depend on mpich, but only suggests it, since fftw can be used without mpi. Again, see the documentation for details. Single and double precision versions of the library can be installed at the same time. The calling convention is identical. Which one is used is decided at compile time: to link against a single precision version, prepend an 's' to the library name. Thus, to link against libsfftw.so, for example, you would use -lsfftw. To top it all off, you can call fftw from fortran. See the docs at /usr/share/doc/fftw-dev/html/fftw_toc.html (needs fftw-dev installed). The file fortran/fftw_f77.i mentioned in the docs can be found in /usr/share/doc/fftw-dev/fortran/. If you aren't impressed yet with the functionality of fftw, there is a rumor that the next version of fftw will be able to make a good cup of coffee. James A. Treacy , Thu, 10 Jan 2002 21:42:20 -0500