78 lines
3.1 KiB
Plaintext
78 lines
3.1 KiB
Plaintext
General Purpose 2D,3D FFT (Fast Fourier Transform) Package
|
|
|
|
Files
|
|
alloc.c : 2D-array Allocation
|
|
alloc.h : 2D-array Allocation
|
|
fft4f2d.c : 2D FFT Package in C - Version I (radix 4, 2)
|
|
fft4f2d.f : 2D FFT Package in Fortran - Version I (radix 4, 2)
|
|
fftsg.c : 1D FFT Package in C - Fast Version (Split-Radix)
|
|
fftsg.f : 1D FFT Package in Fortran - Fast Version (Split-Radix)
|
|
fftsg2d.c : 2D FFT Package in C - Version II (Split-Radix)
|
|
fftsg2d.f : 2D FFT Package in Fortran - Version II (Split-Radix)
|
|
fftsg3d.c : 3D FFT Package in C - Version II (Split-Radix)
|
|
fftsg3d.f : 3D FFT Package in Fortran - Version II (Split-Radix)
|
|
shrtdct.c : 8x8, 16x16 DCT Package
|
|
sample2d/
|
|
Makefile : for gcc, cc
|
|
Makefile.f77: for Fortran
|
|
Makefile.pth: Pthread version
|
|
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 Files
|
|
C and Fortran versions are equal and
|
|
the same routines are in each version.
|
|
---- Difference between "fft4f2d.*" and "fftsg2d.*" ----
|
|
"fft4f2d.*" are optimized for the old machines that
|
|
don't have the large size CPU cache.
|
|
"fftsg2d.*", "fftsg3d.*" use 1D FFT routines in "fftsg.*".
|
|
"fftsg2d.*", "fftsg3d.*" are optimized for the machines that
|
|
have the multi-level (L1,L2,etc) cache.
|
|
|
|
Routines in the Package
|
|
in fft4f2d.*, fftsg2d.*
|
|
cdft2d: 2-dim Complex Discrete Fourier Transform
|
|
rdft2d: 2-dim Real Discrete Fourier Transform
|
|
ddct2d: 2-dim Discrete Cosine Transform
|
|
ddst2d: 2-dim Discrete Sine Transform
|
|
rdft2dsort: rdft2d input/output ordering (fftsg2d.*)
|
|
in fftsg3d.*
|
|
cdft3d: 3-dim Complex Discrete Fourier Transform
|
|
rdft3d: 3-dim Real Discrete Fourier Transform
|
|
ddct3d: 3-dim Discrete Cosine Transform
|
|
ddst3d: 3-dim Discrete Sine Transform
|
|
rdft3dsort: rdft3d input/output ordering
|
|
in fftsg.*
|
|
cdft: 1-dim Complex Discrete Fourier Transform
|
|
rdft: 1-dim Real Discrete Fourier Transform
|
|
ddct: 1-dim Discrete Cosine Transform
|
|
ddst: 1-dim Discrete Sine Transform
|
|
dfct: 1-dim Real Symmetric DFT
|
|
dfst: 1-dim Real Anti-symmetric DFT
|
|
(these routines are called by fftsg2d.*, fftsg3d.*)
|
|
in shrtdct.c
|
|
ddct8x8s : Normalized 8x8 DCT
|
|
ddct16x16s: Normalized 16x16 DCT
|
|
(faster than ddct2d())
|
|
|
|
Usage
|
|
Brief explanations are in block comments of each packages.
|
|
The examples are given in the test programs.
|
|
|
|
Copyright
|
|
Copyright(C) 1997,2001 Takuya OOURA (email: ooura@kurims.kyoto-u.ac.jp).
|
|
You may use, copy, modify this code for any purpose and
|
|
without fee. You may distribute this ORIGINAL package.
|
|
|
|
History
|
|
...
|
|
Nov. 2001 : Add 3D-FFT routines
|
|
Dec. 2006 : Fix a documentation bug in "fftsg3d.*"
|
|
Dec. 2006 : Fix a minor bug in "fftsg.f"
|
|
|