https://github.com/fortran-lang/fftpack
Double precision version of fftpack
https://github.com/fortran-lang/fftpack
fast-fourier-transform fft fft-library fftpack fortran-library fortran-package-manager
Last synced: 4 months ago
JSON representation
Double precision version of fftpack
- Host: GitHub
- URL: https://github.com/fortran-lang/fftpack
- Owner: fortran-lang
- License: other
- Created: 2013-02-21T10:07:23.000Z (over 13 years ago)
- Default Branch: main
- Last Pushed: 2025-07-22T20:33:41.000Z (11 months ago)
- Last Synced: 2025-07-22T22:21:26.019Z (11 months ago)
- Topics: fast-fourier-transform, fft, fft-library, fftpack, fortran-library, fortran-package-manager
- Language: Fortran
- Homepage: https://fortran-lang.github.io/fftpack/
- Size: 2.21 MB
- Stars: 78
- Watchers: 15
- Forks: 20
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# FFTPACK
A package of Fortran subprograms for the fast Fourier transform of periodic and other symmetric sequences.
[](https://github.com/fortran-lang/fftpack/actions)
[](https://github.com/fortran-lang/fftpack/actions)
[](https://github.com/fortran-lang/fftpack/actions/workflows/cmake.yml)
## Getting started
### Get the code
```bash
git clone https://github.com/fortran-lang/fftpack.git
cd fftpack
```
### Build with [fortran-lang/fpm](https://github.com/fortran-lang/fpm)
Fortran Package Manager (fpm) is a package manager and build system for Fortran.
You can build using provided `fpm.toml`:
```bash
fpm build
fpm test --list
fpm test
```
To use `fftpack` within your `fpm` project, add the following to your `fpm.toml` file:
```toml
[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](https://cmake.org/runningcmake/). 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](https://mesonbuild.com) version 0.57 or newer
- a build-system backend, *i.e.* [ninja](https://ninja-build.org) version 1.7 or newer
Setup a build with
```sh
meson setup build
```
You can select the Fortran compiler by the `FC` environment variable.
To compile and run the projects testsuite use
```sh
meson test -C build --print-errorlogs
```
If the testsuite passes you can install with
```sh
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.
[FORD]: https://github.com/Fortran-FOSS-Programmers/ford
[project file]: ./API-doc-FORD-file.md
[scipy.fftpack]: https://docs.scipy.org/doc/scipy/reference/fftpack.html
[documentation for the GNU/gsl FFT routines]: https://www.gnu.org/software/gsl/doc/html/fft.html#
[netlib/fftpack]: http://www.netlib.org/fftpack/
[LaTeX]: https://www.latex-project.org
[GitHub Pages site]: https://fortran-lang.github.io/fftpack/