FFTPACK5
Fast Fourier Transform


FFTPACK5 is a FORTRAN90 library which computes Fast Fourier Transforms, 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 on 10 May 2010. A partial fix was inserted, the authors have been noted, and a proper fix has been promised...

Special features include:

Routines in the library come in groups of three:

The following table groups the routines:
InitializationForwardBackwardPurpose
CFFT1ICFFT1FCFFT1BFFT for complex single precision 1D data
CFFT2ICFFT2FCFFT2BFFT for complex single precision 2D data
CFFTMICFFTMFCFFTMBFFT for complex single precision multi-D data
COSQ1ICOSQ1FCOSQ1BEven function 1D quarter-cosine FFT for real single precision data
DCOSQ1IDCOSQ1FDCOSQ1BEven function 1D quarter-cosine FFT for real double precision data
COSQMICOSQMFCOSQMBEven function 1D quarter-cosine FFT for real single precision data
COST1ICOST1FCOST1BEven function 1D cosine FFT for real single precision data
DCOST1IDCOST1FDCOST1BEven function 1D cosine FFT for real double precision data
COSTMICOSTMFCOSTMBEven function 1D cosine FFT for real single precision data
RFFT1IRFFT1FRFFT1BFFT for real single precision 1D data
DFFT1IDFFT1FDFFT1BFFT for real double precision 1D data
RFFT2IRFFT2FRFFT2BFFT for real single precision 2D data
RFFTMIRFFTMFRFFTMBFFT for real single precision multi-D data
SINQ1ISINQ1FSINQ1BEven function 1D quarter-sine FFT for real single precision data
SINQMISINQMFSINQMBEven function 1D quarter-sine FFT for real single precision data
SINT1ISINT1FSINT1BEven function 1D sine FFT for real single precision data
DSINT1IDSINT1FDSINT1BEven function 1D sine FFT for real double precision data
SINTMISINTMFSINTMBEven function 1D sine FFT for real single precision data
ZFFT1IZFFT1FZFFT1BFFT for complex double precision 1D data
ZFFT2IZFFT2FZFFT2BFFT for complex double precision 2D data
ZFFTMIZFFTMFZFFTMBFFT for complex double precision multi-D data

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 Data and Programs:

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

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

GSL, a C++ library which embodies the "GNU Scientific Library", and includes FFT routines.

NMS, a FORTRAN90 library which includes a number of FFT routines.

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

WAVELET, a FORTRAN90 library which does some simple wavelet calculations;

XERROR, a FORTRAN90 library which is designed to report and handle errors detected during program execution.

Author:

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

Modifications and additions were made by John Burkardt to convert the program to FORTRAN90 format, and to add real and complex double precision routines.

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. http://www.cisl.ucar.edu/css/software/fftpack5 the home page for the original FORTRAN77 version of FFTPACK5.

Source Code:

Examples and Tests:

COST_TEST does a pair of cosine forward and backward transforms.

SINT_TEST does a pair of sine forward and backward transforms.

List of Routines:

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


Last revised on 10 May 2010.