1General Purpose 2D,3D FFT (Fast Fourier Transform) Package
2
3Files
4    alloc.c    : 2D-array Allocation
5    alloc.h    : 2D-array Allocation
6    fft4f2d.c  : 2D FFT Package in C       - Version I (radix 4, 2)
7    fft4f2d.f  : 2D FFT Package in Fortran - Version I (radix 4, 2)
8    fftsg.c    : 1D FFT Package in C       - Fast Version (Split-Radix)
9    fftsg.f    : 1D FFT Package in Fortran - Fast Version (Split-Radix)
10    fftsg2d.c  : 2D FFT Package in C       - Version II (Split-Radix)
11    fftsg2d.f  : 2D FFT Package in Fortran - Version II (Split-Radix)
12    fftsg3d.c  : 3D FFT Package in C       - Version II (Split-Radix)
13    fftsg3d.f  : 3D FFT Package in Fortran - Version II (Split-Radix)
14    shrtdct.c  : 8x8, 16x16 DCT Package
15    sample2d/
16        Makefile    : for gcc, cc
17        Makefile.f77: for Fortran
18        Makefile.pth: Pthread version
19        fft4f2dt.c  : Test Program for "fft4f2d.c"
20        fft4f2dt.f  : Test Program for "fft4f2d.f"
21        fftsg2dt.c  : Test Program for "fftsg2d.c"
22        fftsg2dt.f  : Test Program for "fftsg2d.f"
23        fftsg3dt.c  : Test Program for "fftsg3d.c"
24        fftsg3dt.f  : Test Program for "fftsg3d.f"
25        shrtdctt.c  : Test Program for "shrtdct.c"
26
27Difference of Files
28    C and Fortran versions are equal and
29    the same routines are in each version.
30    ---- Difference between "fft4f2d.*" and "fftsg2d.*" ----
31    "fft4f2d.*" are optimized for the old machines that
32    don't have the large size CPU cache.
33    "fftsg2d.*", "fftsg3d.*" use 1D FFT routines in "fftsg.*".
34    "fftsg2d.*", "fftsg3d.*" are optimized for the machines that
35    have the multi-level (L1,L2,etc) cache.
36
37Routines in the Package
38    in fft4f2d.*, fftsg2d.*
39        cdft2d: 2-dim Complex Discrete Fourier Transform
40        rdft2d: 2-dim Real Discrete Fourier Transform
41        ddct2d: 2-dim Discrete Cosine Transform
42        ddst2d: 2-dim Discrete Sine Transform
43        rdft2dsort: rdft2d input/output ordering (fftsg2d.*)
44    in fftsg3d.*
45        cdft3d: 3-dim Complex Discrete Fourier Transform
46        rdft3d: 3-dim Real Discrete Fourier Transform
47        ddct3d: 3-dim Discrete Cosine Transform
48        ddst3d: 3-dim Discrete Sine Transform
49        rdft3dsort: rdft3d input/output ordering
50    in fftsg.*
51        cdft: 1-dim Complex Discrete Fourier Transform
52        rdft: 1-dim Real Discrete Fourier Transform
53        ddct: 1-dim Discrete Cosine Transform
54        ddst: 1-dim Discrete Sine Transform
55        dfct: 1-dim Real Symmetric DFT
56        dfst: 1-dim Real Anti-symmetric DFT
57        (these routines are called by fftsg2d.*, fftsg3d.*)
58    in shrtdct.c
59        ddct8x8s  : Normalized 8x8 DCT
60        ddct16x16s: Normalized 16x16 DCT
61        (faster than ddct2d())
62
63Usage
64    Brief explanations are in block comments of each packages.
65    The examples are given in the test programs.
66
67Copyright
68    Copyright(C) 1997,2001 Takuya OOURA (email: ooura@kurims.kyoto-u.ac.jp).
69    You may use, copy, modify this code for any purpose and
70    without fee. You may distribute this ORIGINAL package.
71
72History
73    ...
74    Nov. 2001  : Add 3D-FFT routines
75    Dec. 2006  : Fix a documentation bug in "fftsg3d.*"
76    Dec. 2006  : Fix a minor bug in "fftsg.f"
77
78