A package of Fortran subprograms for the fast Fourier transform of periodic and other symmetric sequences.
git clone https://github.com/fortran-lang/fftpack.git
cd fftpack
Build with fortran-lang/fpm
Fortran Package Manager (fpm) is a package manager and build system for Fortran.
You can build using provided fpm.toml
:
fpm build
fpm test --list
fpm test <test_name, see `fpm.toml` or list>
To use fftpack
within your fpm
project, add the following to your fpm.toml
file:
[dependencies]
fftpack = { git="https://github.com/fortran-lang/fftpack.git" }
This library can also be built using CMake. For instructions see Running CMake. CMake version 3.24 or higher is required.
This library can also be built using Meson. The following dependencies are required:
- a Fortran compiler
- meson version 0.57 or newer
- a build-system backend, i.e. ninja version 1.7 or newer
Setup a build with
meson setup build
You can select the Fortran compiler by the FC
environment variable.
To compile and run the projects testsuite use
meson test -C build --print-errorlogs
If the testsuite passes you can install with
meson configure build --prefix=/path/to/install
meson install -C build
See the our GitHub Pages site for documentation generated by FORD from the fortran-lang/fftpack project file.
Although fortran-lang is not interface-compatible with any of the following libraries, each contains documentation that might be useful for different reasons:
- Recommended reference: The scipy.fftpack documentation contains succinct description of the storage sequences for function results that match those in fortran-lang/fftpack, e.g., the location of the real and imaginary parts of the
rfft
function result. - Theory reference: The documentation for the GNU/gsl FFT routines, which are also based on netlib/fftpack, provides some useful definitions of FFT terminology and represenations of the analytical forms of the Discrete Fourier Transform nicely formatted by LaTeX.
- Historical reference: The netlib/fftpack library on which fortran-lang/fftpack is useful for understanding several fortran-lang/fftpack design choices, e.g., the procedure dependencies.