Metadata-Version: 2.4
Name: fftkit
Version: 0.1.0
Summary: One FFT API over many backends: scipy, numpy, Intel MKL, CuPy, PyTorch, TensorFlow, pyFFTW, Accelerate
Project-URL: Homepage, https://github.com/openfluids/fftkit
Project-URL: Repository, https://github.com/openfluids/fftkit
Project-URL: Issues, https://github.com/openfluids/fftkit/issues
Author-email: Ricardo Frantz <rasfrantz@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: CuPy,FFT,GPU,MKL,benchmark,fast Fourier transform,power spectral density,signal processing,spectral analysis
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.11
Requires-Dist: numpy>=1.24
Requires-Dist: scipy>=1.10
Provides-Extra: bench
Requires-Dist: matplotlib>=3.7; extra == 'bench'
Requires-Dist: tabulate>=0.9; extra == 'bench'
Provides-Extra: gpu
Requires-Dist: cupy; extra == 'gpu'
Requires-Dist: torch; extra == 'gpu'
Provides-Extra: mkl
Requires-Dist: mkl-fft; extra == 'mkl'
Description-Content-Type: text/markdown

# fftkit

One FFT API over many backends.

```python
import fftkit

fftkit.get_available_backends()      # what this machine can actually use
fft = fftkit.get_fft_func("mkl")     # or scipy, numpy, cupy, torch, ...
spectrum = fft(signal)
```

Swapping FFT libraries usually means rewriting call sites, because each library
spells the same transform differently. `fftkit` puts a single callable in front
of eight of them, reports which ones are installed, and measures which one is
fastest for your array sizes.

Extracted from [`modalpy`](https://github.com/openfluids/modalpy).

## Status

Under construction — the packaging scaffold is in place; the library, tests, and
benchmarks are landing next. See `CHANGELOG.md`.

## Install

```bash
pip install fftkit               # numpy + scipy only
pip install "fftkit[mkl]"        # + Intel MKL
pip install "fftkit[gpu]"        # + CuPy / PyTorch
pip install "fftkit[bench]"      # + benchmark plotting deps
```

## License

MIT — see `LICENSE`.
