FFTPACK5
Fast Fourier Transform


FFTPACK5 is a FORTRAN77 library which computes the Fast Fourier Transform, by Paul Swarztrauber and Dick Valent;

Note: An apparent indexing problem in the 2D complex codes CFFT2B/CFFT2F/CFFT2I and ZFFT2B/ZFFT2F/ZFFT2I was reported to the authors on 10 May 2010. A fix has been promised.

Special features include:

Routines in the library come in groups of three:

The following table shows how the names of the routines in each group:
InitializationForwardBackwardPurpose
CFFT1ICFFT1FCFFT1BFFT for complex 1D data
CFFT2ICFFT2FCFFT2BFFT for complex 2D data
CFFTMICFFTMFCFFTMBFFT for complex multi-D data
COSQ1ICOSQ1FCOSQ1BEven function 1D quarter-cosine FFT
COSQMICOSQMFCOSQMBEven function 1D quarter-cosine FFT
COST1ICOST1FCOST1BEven function 1D cosine FFT
COSTMICOSTMFCOSTMBEven function 1D cosine FFT
RFFT1IRFFT1FRFFT1BFFT for real 1D data
RFFT2IRFFT2FRFFT2BFFT for real 2D data
RFFTMIRFFTMFRFFTMBFFT for real multi-D data
SINQ1ISINQ1FSINQ1BEven function 1D quarter-sine FFT
SINQMISINQMFSINQMBEven function 1D quarter-sine FFT
SINT1ISINT1FSINT1BEven function 1D sine FFT
SINTMISINTMFSINTMBEven function 1D sine FFT

Licensing:

Licensed under the GNU General Public License (GPL).
Copyright (C) 1995-2004, Scientific Computing Division,
University Corporation for Atmospheric Research.

Languages:

FFTPACK5 is available in a FORTRAN77 version and a FORTRAN90 version.

Related Programs:

FFTPACK5.1, a FORTRAN77 library which implements the Fast Fourier Transform by Swarztrauber and Valent;

FFTW3, FORTRAN77 programs which illustrate the use of the FFTW3 library for Fast Fourier Transforms, by Matteo Frigo and Steven Johnson.

SFTPACK, a FORTRAN77 library which implements the "slow" Fourier transform, intended as a teaching tool and comparison with the fast Fourier transform.

WALSH, a FORTRAN77 library which implements versions of the Walsh and Haar transforms.

WAVELET, a FORTRAN77 library which does some simple calculations with wavelet transforms;

XERROR, a FORTRAN77 library which is used for error reporting by FFTPACK5.

Author:

The original Fortran77 version of this code was written by Dick Valent and Paul Swarztrauber, of the National Center for Atmospheric Research (NCAR).

Reference:

  1. William Briggs, Van Emden Henson,
    The DFT: An Owner's Manual for the Discrete Fourier Transform,
    SIAM, 1995,
    ISBN13: 978-0-898713-42-8,
    LC: QA403.5.B75.
  2. Elbert Brigham,
    The Fast Fourier Transform and Its Applications,
    Prentice-Hall, 1988,
    ISBN: 0133075052,
    LC: QA403.B74.
  3. Bill Buzbee,
    The SLATEC Common Math Library,
    in Sources and Development of Mathematical Software,
    edited by Wayne Cowell,
    Prentice-Hall, 1984,
    ISBN: 0-13-823501-5,
    LC: QA76.95.S68.
  4. Eleanor Chu, Alan George,
    Inside the FFT Black Box,
    CRC Press,
    ISBN: 0849302706,
    LC: QA403.5C5.
  5. David Kahaner, Cleve Moler, Steven Nash,
    Numerical Methods and Software,
    Prentice Hall, 1989,
    ISBN: 0-13-627258-4,
    LC: TA345.K34.
  6. Paul Swarztrauber,
    Symmetric FFT's,
    Mathematics of Computation,
    Volume 47, Number 175, July 1986, pages 323-346.
  7. Paul Swarztrauber,
    Vectorizing the Fast Fourier Transforms,
    in Parallel Computations,
    edited by Garry Rodrigue,
    Academic Press, 1982,
    ISBN: 0125921012,
    LC: QA76.6.P348.
  8. Paul Swarztrauber,
    Fast Fourier Transform Algorithms for Vector Computers,
    Parallel Computing,
    Volume 1, Number 1, August 1984, pages 45-63.
  9. FFTPACK 5.0 Reference manual
  10. http://www.cisl.ucar.edu/css/software/fftpack5 the home page for the original FORTRAN77 version of FFTPACK5.

Source Code:

Examples and Tests:

A discrepancy seems to have shown up in the COST1* routines. Calling COST1F followed by COST1B does not reproduce the original data. This discrepancy disappears if double precision is used.

A discrepancy seems to have shown up in the SINT1* routines. Calling SINT1F followed by SINT1B does not reproduce the original data. This discrepancy disappears if double precision is used.

List of Routines:

You can go up one level to the FORTRAN77 source codes.


Last revised on 28 November 2005.