fftpack4


fftpack4, a C code which computes Fast Fourier Transforms, by Paul Swarztrauber;

Special features include:

Routines in the library come in groups of three:

The following table groups the routines:
InitializationForwardBackwardPurpose
CFFTICFFTFCFFTBFFT for complex data
COSQICOSQFCOSQBEven function 1D quarter-cosine FFT for real data
COSTICOSTCOSTEven function 1D cosine FFT for real data
EZFFTIEZFFTFEZFFTBFFT for real data
RFFTIRFFTFRFFTBFFT for real data
SINQISINQFSINQBEven function 1D quarter-sine FFT for real data
SINTISINTSINTEven function 1D sine FFT for real data

Licensing:

All the changes made by Andrew Fernandes from the original FFTPACK fall under the following BSD-style open-source license:

  Copyright (c) 2005, Andrew Fernandes (andrew@fernandes.org);
  All rights reserved.
   
  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions
  are met:
   
  - Redistributions of source code must retain the above copyright
  notice, this list of conditions and the following disclaimer.
  
  - Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer in the
  documentation and/or other materials provided with the distribution.
  
  - Neither the name of the North Carolina State University nor the
  names of its contributors may be used to endorse or promote products
  derived from this software without specific prior written permission.
   
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE.
      

Languages:

fftpack4 is available in a C version.

Related Data and Programs:

FFT_OPENMP, a C code which demonstrates the computation of a Fast Fourier Transform (FFT) in parallel, using OpenMP.

FFT_SERIAL, a C code which demonstrates the computation of a Fast Fourier Transform (FFT), and is intended as a starting point for implementing a parallel version.

fftpack4_test

FFTPACK5, a FORTRAN90 library which implements the Fast Fourier Transform (FFT) by Paul Swarztrauber and Dick Valent;

FFTW3, C codes which illustrate the use of the FFTW3 library for Fast Fourier Transforms (FFT), by Matteo Frigo and Steven Johnson.

SFTPACK, a C code which implements the slow Fourier transform, intended as a teaching tool and comparison with the Fast Fourier Transform (FFT).

Author:

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

The translation to C was done by Andrew Fernandes.

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.

Source Code:


Last revised on 27 June 2019.