Metadata-Version: 2.1
Name: udft
Version: 3.2.0
Summary: Unitary discrete Fourier Transform (and related)
Home-page: https://udft.readthedocs.io/en/stable/
License: Public Domain
Keywords: fft,orthonormal
Author: François Orieux
Author-email: francois.orieux@universite-paris-saclay.fr
Maintainer: François Orieux
Maintainer-email: francois.orieux@universite-paris-saclay.fr
Requires-Python: >=3.7,<4.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Typing :: Typed
Provides-Extra: fftw
Requires-Dist: numpy (>=1.20.2,<2.0.0)
Requires-Dist: pyFFTW (>=0.12.0,<0.13.0); extra == "fftw"
Project-URL: Author webpage, https://pro.orieux.fr/
Project-URL: Bug Tracker, https://github.com/forieux/udft/issues
Project-URL: Documentation, https://udft.readthedocs.io/en/stable/
Project-URL: Repository, https://github.com/forieux/udft/
Description-Content-Type: text/markdown

# UDFT: Unitary Discrete Fourier Transform (and related)

![licence](https://img.shields.io/github/license/forieux/udft) ![pypi](https://img.shields.io/pypi/v/udft) ![status](https://img.shields.io/pypi/status/udft) ![version](https://img.shields.io/pypi/pyversions/udft) ![maintained](https://img.shields.io/maintenance/yes/2021) [![Documentation Status](https://readthedocs.org/projects/udft/badge/?version=latest)](https://udft.readthedocs.io/en/latest/?badge=latest)

This module implements unitary discrete Fourier transform, that is orthonormal.
This module existed before the introduction of the `norm="ortho"` keyword and is
now a very (very) thin wrapper around Numpy or
[pyFFTW](https://pypi.org/project/pyFFTW/) (maybe others in the future), mainly
done for my personal usage. There is also functions related to Fourier and
convolution like `ir2fr`.

It is useful for convolution [1]: they respect the Perceval equality, e.g., the
value of the null frequency is equal to `1/√N * ∑ₙ xₙ`.

```
[1] B. R. Hunt "A matrix theory proof of the discrete convolution theorem", IEEE
Trans. on Audio and Electroacoustics, vol. au-19, no. 4, pp. 285-288, dec. 1971
```

If you are having issues, please let me know

francois.orieux AT l2s.centralesupelec.fr

## Installation and documentation

UDFT is just the file `udft.py` and depends on `numpy` and Python 3.7 only.
Documentation is [here](https://udft.readthedocs.io/en/stable/index.html). I
recommend using poetry for installation

```
   poetry add udft
```
or
```
   poetry add udft[fftw]
```
to install the [pyFFTW](https://pypi.org/project/pyFFTW/) also (recommended), but the package is available with pip also. For a quick and dirty installation, just copy the `udft.py` file: it is
quite stable, follow the [Semantic
Versioning](https://semver.org/spec/v2.0.0.html), and major changes are
unlikely.

## License

The code is in the public domain.

