Description
This is a package to calculate Discrete Fourier/Cosine/Sine Transforms of 1-dimensional sequences of length 2^N. This package contains C and Fortran FFT codes.
Package
- fft.tgz (71KB) updated: 2006年12月28日 (Fixed a minor bug)
- fft.zip (75KB) updated: 2006年12月28日 (Fixed a minor bug)
Files in the Package
fft4g.c : FFT Package in C - Fast Version (radix 4, 2)fft4g.f : FFT Package in Fortran - Fast Version (radix 4, 2)fft4g_h.c : FFT Package in C - Simple Version (radix 4, 2)fft8g.c : FFT Package in C - Fast Version (radix 8, 4, 2)fft8g.f : FFT Package in Fortran - Fast Version (radix 8, 4, 2)fft8g_h.c : FFT Package in C - Simple Version (radix 8, 4, 2)fftsg.c : FFT Package in C - Fast Version (Split-Radix)fftsg.f : FFT Package in Fortran - Fast Version (Split-Radix)fftsg_h.c : FFT Package in C - Simple Version (Split-Radix)readme.txt : readme filesample1/ : Sample Program 1 - for testMakefile : Makefile (for gcc, cc)Makefile.f77 : Makefile (for Fortran)testxg.c : Test Program for "fft*g.c"testxg.f : Test Program for "fft*g.f"testxg_h.c : Test Program for "fft*g_h.c"sample2/ : Sample Program 2 - for benchmarksMakefile : Makefile (for gcc, cc)Makefile.pth : Makefile (for multi-threads)pi_fft.c : PI(= 3.1415926535897932384626...) Calculation Program
- a Benchmark Test for "fft*g.c"Difference of the Files
The same routines are in each C and Fortran file. Simple versions use no work area, but fast versions use work areas. Fast versions have the same specification.
Routines in "fft*.*"
cdft() : Complex Discrete Fourier Transformrdft() : Real Discrete Fourier Transformddct() : Discrete Cosine Transformddst() : Discrete Sine Transformdfct() : Cosine Transform of RDFT (Real Symmetric DFT)dfst() : Sine Transform of RDFT (Real Anti-symmetric DFT)Usage
Brief explanations are in block comments of each packages. The examples are given in the test programs.
Description
This is a package to calculate Discrete Fourier/Cosine/Sine Transforms of 2,3-dimensional sequences of length 2^N.
Package
- fft2d.tgz (53KB) updated: 2006年12月28日 (Fixed a minor bug)
- fft2d.zip (60KB) updated: 2006年12月28日 (Fixed a minor bug)
Files in the Package
alloc.c : 2D,3D-array Allocation Codefft4f2d.c : 2D FFT Package in C - Version Ifft4f2d.f : 2D FFT Package in Fortran - Version Ifftsg.c : 1D FFT Package in C - Split-Radix Versionfftsg.f : 1D FFT Package in Fortran - Split-Radix Versionfftsg2d.c : 2D FFT Package in C - Version IIfftsg2d.f : 2D FFT Package in Fortran - Version IIfftsg3d.c : 3D FFT Package in Cfftsg3d.f : 3D FFT Package in Fortranshrtdct.c : 8x8, 16x16 DCT Package - faster than ddct2d()readme2d.txt : readme filesample2d/ : Sample Program - for testMakefile : Makefile (for gcc, cc)Makefile.f77 : Makefile (for Fortran)Makefile.pth : Makefile (for multi-threads)fft4f2dt.c : Test Program for "fft4f2d.c"fft4f2dt.f : Test Program for "fft4f2d.f"fftsg2dt.c : Test Program for "fftsg2d.c"fftsg2dt.f : Test Program for "fftsg2d.f"fftsg3dt.c : Test Program for "fftsg3d.c"fftsg3dt.f : Test Program for "fftsg3d.f"shrtdctt.c : Test Program for "shrtdct.c"Difference of the Files
Version I routines perform the 2D FFTs directly, but version II routines use 1D FFT routines. Version II is usually faster than version I.
Routines in "fft**2d.*"
cdft2d() : 2-dim Complex Discrete Fourier Transformrdft2d() : 2-dim Real Discrete Fourier Transformddct2d() : 2-dim Discrete Cosine Transformddst2d() : 2-dim Discrete Sine TransformRoutines in "fftsg3d.*"
cdft3d() : 3-dim Complex Discrete Fourier Transformrdft3d() : 3-dim Real Discrete Fourier Transformddct3d() : 3-dim Discrete Cosine Transformddst3d() : 3-dim Discrete Sine Transform
Copyright Takuya OOURA, 1996-2001
You may use, copy, modify and distribute this code for any purpose (include commercial use) and without fee. Please refer to this package when you modify this code.