fftpack51
fftpack51,
a Fortran90 code which
computes the Fast Fourier Transform,
using double precision arithmetic,
by Paul Swarztrauber and Dick Valent;
Special features include:
-
real or complex data can be handled;
-
separate routines for forward analysis (data => Fourier coefficients)
and backward analysis (Fourier coefficients => data);
-
sine and cosine transform routines;
-
quarter wave sine and cosine transform routines;
-
the amount of data is NOT required to be a power of 2.
Routines in the code come in groups of three:
-
an initialization routine;
-
the forward computational routine (data to FFT coefficients);
-
the backward computational routine (FFT coefficients to data).
The following table shows how the names of the routines in each group:
Initialization | Forward | Backward | Purpose |
CFFT1I | CFFT1F | CFFT1B | FFT for complex 1D data |
CFFT2I | CFFT2F | CFFT2B | FFT for complex 2D data |
CFFTMI | CFFTMF | CFFTMB | FFT for complex multi-D data |
COSQ1I | COSQ1F | COSQ1B | Even function 1D quarter-cosine FFT |
COSQMI | COSQMF | COSQMB | Even function 1D quarter-cosine FFT |
COST1I | COST1F | COST1B | Even function 1D cosine FFT |
COSTMI | COSTMF | COSTMB | Even function 1D cosine FFT |
RFFT1I | RFFT1F | RFFT1B | FFT for real 1D data |
RFFT2I | RFFT2F | RFFT2B | FFT for real 2D data |
RFFTMI | RFFTMF | RFFTMB | FFT for real multi-D data |
SINQ1I | SINQ1F | SINQ1B | Even function 1D quarter-sine FFT |
SINQMI | SINQMF | SINQMB | Even function 1D quarter-sine FFT |
SINT1I | SINT1F | SINT1B | Even function 1D sine FFT |
SINTMI | SINTMF | SINTMB | Even function 1D sine FFT |
Bugfixes from FFTPACK 5.0 to FFTPACK 5.1
The functionality of FFTPACK 5.1 is identical with the previous version 5.0.
The following bugfixes have been applied:
-
Corrected index error for high-level routines [CR]FFT[12][BFI]
requiring WSAVE array, and all dependent routines to which LWSAVE
is passed. Namely, in LWSAV = L + LOG(REAL(INT(L))) + 4 definitions,
the summand term LOG(REAL(INT(L))) has been corrected to
LOG(REAL(INT(L)/LOG(2.)).
-
Corrected index error in routime C1FM1F at label 56, where array offset
was declared 1 that should have been 2. This resulted in C1FFTF transforms
of length N calculated incorrectly, where N is any prime .GT. 5, or N=7*M,
M .GE. 6.
-
Corrected RFFT2x routines by rewriting them. The backward transform
followed by forward now returns identity. Input argument LENSAV must be
be at least
L + 3*M + INT(LOG(REAL(L))/LOG(2.)) + 2*INT(LOG(REAL(M))/LOG(2.)) +12.
Previously, the required value was smaller.
Licensing:
Licensed under the GNU General Public License (GPL).
Copyright (C) 1995-2004, Scientific Computing Division,
University Corporation for Atmospheric Research.
Languages:
fftpack51 is available in
a Fortran90 version.
Related codes:
fftpack5,
a Fortran90 code which
implements the Fast Fourier Transform.
fftpack51_test
fftw_test,
Fortran90 codes which
illustrate the use of the FFTW code for Fast Fourier Transforms,
by Matteo Frigo and Steven Johnson.
sftpack,
a Fortran90 code which
implements the "slow" Fourier transform, intended as a teaching
tool and comparison with the fast Fourier transform.
walsh_transform,
a Fortran90 code which
implements versions of the Walsh and Haar transforms.
xerror,
a Fortran90 code which
is used for error reporting.
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:
-
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.
-
Elbert Brigham,
The Fast Fourier Transform and Its Applications,
Prentice-Hall, 1988,
ISBN: 0133075052,
LC: QA403.B74.
-
Bill Buzbee,
The SLATEC Common Math code,
in Sources and Development of Mathematical Software,
edited by Wayne Cowell,
Prentice-Hall, 1984,
ISBN: 0-13-823501-5,
LC: QA76.95.S68.
-
Eleanor Chu, Alan George,
Inside the FFT Black Box,
CRC Press,
ISBN: 0849302706,
LC: QA403.5C5.
-
David Kahaner, Cleve Moler, Steven Nash,
Numerical Methods and Software,
Prentice Hall, 1989,
ISBN: 0-13-627258-4,
LC: TA345.K34.
-
Paul Swarztrauber,
Symmetric FFT's,
Mathematics of Computation,
Volume 47, Number 175, July 1986, pages 323-346.
-
Paul Swarztrauber,
Vectorizing the Fast Fourier Transforms,
in Parallel Computations,
edited by Garry Rodrigue,
Academic Press, 1982,
ISBN: 0125921012,
LC: QA76.6.P348.
-
Paul Swarztrauber,
Fast Fourier Transform Algorithms for Vector Computers,
Parallel Computing,
Volume 1, Number 1, August 1984, pages 45-63.
Source Code:
Last revised on 04 August 2022.