SFTPACK\
“Slow” Fourier Transforms {#sftpack-slow-fourier-transforms align=”center”}
=========================
SFTPACK is a C++ library which carries out some “slow” Fourier
transforms, that is, Fourier transforms without the techniques that
allow for very fast computation.
The intention is to make the underlying calculation clear, and to
provide a simple check and comparison of timing and usage for the fast
calculations.
The fast Fourier transform is a highly efficient procedure. However, the
coding of the algorithm, and the conventions for indexing, ordering, and
normalization, can make it quite difficult to understand what is being
done, or even to see how to use the software correctly. This means that
a coding error or mistaken use can be undetected.
Licensing: {#licensing align=”center”}
The computer code and data files described and made available on this
web page are distributed under the GNU LGPL
license.
Languages: {#languages align=”center”}
SFTPACK is available in a C
version and a C++
version and a FORTRAN77
version and a FORTRAN90
version and a MATLAB
version and a Python
version.
C4LIB, a C++ library which implements
certain elementary functions for single precision complex variables;
C8LIB, a C++ library which implements
certain elementary functions for double precision complex variables;
COMPLEX_NUMBERS,
a C++ program which demonstrates some simple features involved in the
use of complex numbers in C programming.
COSINE_TRANSFORM,
a C++ library which demonstrates some simple properties of the discrete
cosine transform (DCT).
FFT_OPENMP, a C++ program
which demonstrates the computation of a Fast Fourier Transform in
parallel, using OpenMP.
HAAR, a C++ library which computes the
Haar transform of data.
SINE_TRANSFORM, a
C++ library which demonstrates some simple properties of the discrete
sine transform.
Reference: {#reference align=”center”}
- 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.
- Ralph Hartley,\
A More Symmetrical Fourier Analysis Applied to Transmission
Problems,\
Proceedings of the Institute of Radio Engineers,\
Volume 30, 1942, pages 144-150.
Source Code: {#source-code align=”center”}
Examples and Tests: {#examples-and-tests align=”center”}
List of Routines: {#list-of-routines align=”center”}
- C4MAT_PRINT_SOME prints some of a C4MAT.
- C4MAT_SFTB computes a “slow” backward Fourier transform of a
C4MAT.
- C4MAT_SFTF computes a “slow” forward Fourier transform of a
C4MAT.
- C4MAT_UNIFORM_01_NEW returns a new unit pseudorandom C4MAT.
- C4VEC_PRINT_PART prints “part” of a C4VEC.
- C4VEC_SFTB computes a “slow” backward Fourier transform of a
C4VEC.
- C4VEC_SFTF computes a “slow” forward Fourier transform of a
C4VEC.
- C4VEC_UNIFORM_01_NEW returns a unit pseudorandom C4VEC.
- C8MAT_PRINT_SOME prints some of a C8MAT.
- C8MAT_SFTB computes a “slow” backward Fourier transform of a
C8MAT.
- C8MAT_SFTF computes a “slow” forward Fourier transform of a
C8MAT.
- C8MAT_UNIFORM_01_NEW returns a new unit pseudorandom C8MAT.
- C8VEC_PRINT_PART prints “part” of a C8VEC.
- C8VEC_SFTB computes a “slow” backward Fourier transform of a
C8VEC.
- C8VEC_SFTF computes a “slow” forward Fourier transform of a
C8VEC.
- C8VEC_UNIFORM_01_NEW returns a unit pseudorandom C8VEC.
- I4_MAX returns the maximum of two I4’s.
- I4_MIN returns the minimum of two I4’s.
- R4VEC_PRINT_PART prints “part” of an R4VEC.
- R4VEC_SCT computes a “slow” cosine transform of an R4VEC.
- R4VEC_SFTB computes a “slow” backward Fourier transform of an
R4VEC.
- R4VEC_SFTF computes a “slow” forward Fourier transform of an
R4VEC.
- R4VEC_SHT computes a “slow” Hartley transform of an R4VEC.
- R4VEC_SQCTB computes a “slow” quarter cosine transform backward
of an R4VEC.
- R4VEC_SQCTF computes a “slow” quarter cosine transform forward
of an R4VEC.
- R4VEC_SQSTB computes a “slow” quarter sine transform backward
of an R4VEC.
- R4VEC_SQSTF computes a “slow” quarter sine transform forward of
an R4VEC.
- R4VEC_SST computes a “slow” sine transform of an R4VEC.
- R4VEC_UNIFORM_NEW returns a scaled pseudorandom R4VEC.
- R8VEC_PRINT_PART prints “part” of an R8VEC.
- R8VEC_SCT computes a “slow” cosine transform of an R8VEC.
- R8VEC_SFTB computes a “slow” backward Fourier transform of an
R8VEC.
- R8VEC_SFTF computes a “slow” forward Fourier transform of an
R8VEC.
- R8VEC_SHT computes a “slow” Hartley transform of an R8VEC.
- R8VEC_SQCTB computes a “slow” quarter cosine transform backward
of an R8VEC.
- R8VEC_SQCTF computes a “slow” quarter cosine transform forward
of an R8VEC.
- R8VEC_SQSTB computes a “slow” quarter sine transform backward
of an R8VEC.
- R8VEC_SQSTF computes a “slow” quarter sine transform forward of
an R8VEC.
- R8VEC_SST computes a “slow” sine transform of an R8VEC.
- R8VEC_UNIFORM_NEW returns a scaled pseudorandom R8VEC.
- TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to the C++ source codes.
Last revised on 22 June 2010.