Skip to content

fortran-lang/fftpack

Repository files navigation

FFTPACK

FFTPACK

A package of Fortran subprograms for the fast Fourier transform of periodic and other symmetric sequences.

Actions Status Actions Status CMake

Getting started

Get the code

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" }

Build with CMake

This library can also be built using CMake. For instructions see Running CMake. CMake version 3.24 or higher is required.

Build with Meson

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

Documentation

See the our GitHub Pages site for documentation generated by FORD from the fortran-lang/fftpack project file.

References

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.