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 <treacy@debian.org>, Thu, 10 Jan 2002 21:42:20 -0500