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