his file describes the origins of the various FFTs found in this
directory.  With each source code package we give the name by which
the code is labelled in the benchmark results.

This README file has been superceded by the HTML file "doc/ffts.html".
Please refer to that document for complete information.  The main
purpose of this file is now simply to list which files go with which
package.

Readers should note that we have made various modifications to some of the
code in order to make it work with the benchmark (e.g. changing
subroutine names, changing to use double precision, and similar minor
alterations).

Except where otherwise noted, FFTs are one-dimensional only.

-----------------------------------------------------------------------------

Singleton: singleton.f
        Fortran FFT by R. C. Singleton (Stanford Research Institute,
1968). This routine handles both one and multi-dimensional transforms.
        R. C. Singleton, "An algorithm for computing the mixed radix
fast Fourier transform," IEEE Trans. on Audio and Electroacoustics,
vol. AU-17, no. 2, p. 93-103 (June, 1969).
        http://www.netlib.org/go/fft.f

FFTPACK: fftpack/*
	Fortran FFT from the popular FFTPACK package by
P. N. Swarztrauber.  The code in the benchmark is from the bihar
package at Netlib, which includes double and single precision versions
of FFTPACK.  FFTPACK includes complex-complex, real-complex, sin, and
cos transforms (1D only).
	ftp://ftp.netlib.org/bihar/

Bailey: bailey-fft.f
	Fortran FFT by David H. Bailey (dbailey@nas.nasa.gov) (1995).
(Actually a part of an arbitrary-precision arithmetic package, MPFUN,
by Bailey.) Only works for sizes that are powers of 2.
	D. H. Bailey, Intl. J. of Supercomp. Appl., p. 82-87 (Spring 1988)
	http://www.netlib.org/mpfun

Brenner: brenner.f
	Fortran FFT by Norman Brenner, based on a program by Charles
Rader.  (June, 1967.)  Handles real-complex transforms and
multi-dimensional transforms in addition to 1D complex-complex
transforms.
	IEEE Audio Transactions (June 1967), Special Issue on the FFT
	http://mri.beckman.uiuc.edu/hess/software.html

NR (F):  four1.c fourn.c
        Fortran FFTs from Numerical Recipes in Fortran.  fourn is a
multi- dimensional transform. Both of these routines only work for
powers of two.  Note that we changed the name of the routines from
four1 and fourn to nrf_four1 and nrf_fourn.  We also changed the
floating point type to double precision. Not in the public domain.
(See also the description NR (C) in c_source/README.)
        http://cfata2.harvard.edu/numerical-recipes/

Ooura (F): ooura.f
        Fortran FFT by Takuya Ooura (ooura@mmm.t.u-tokyo.ac.jp)
(1996).  Only works for sizes that are powers of two.  There is also a
C version (from the looks of things, the Fortran version was written
first, translated with f2c, and then the C code was cleaned up a bit
by hand).
        http://momonga.t.u-tokyo.ac.jp/~ooura/

Temperton: gpfa/*
	Original, Fortran version of GPFA.  (c.f. c_source/README)

MFFT: mfft/*
	Fortran FFT by A. Nobile and V. Roberto (1987).  Includes
2, 3, and 4-dimensional transforms (both complex-complex and
real-complex).

Sorensen: sorensen/*
	Fortran FFT by H. Sorensen (see doc/ffts.html for complete info.)

Burrus: burrus.f
	Fortran FFT by C. S. Burrus. (See doc/ffts.html for complete info.)

Sorensen DIT: sfftfu.f
	Fortran DIT FFT by H. Sorensen. (See doc/ffts.html for complete info.)

Monro: monro.f
	Fortran radix-4 FFT by D. Monro. (See doc/ffts.html for complete info.)

SCIPORT: sciport/*
	Fortran FFTs from the SCIPORT package at Netlib.
