Skip to main content

Fast Fourier Series library

Project description

pyFFS is a collection of efficient algorithms to compute Fourier Series and related transforms.

Installation

$ pip install pyFFS

Developer Install

Recommended setup using Anaconda, for optimized numerical libraries:

# Create Anaconda environment
$ conda create --name pyffs python=3
$ conda activate pyffs

# Clone repository
$ git clone https://github.com/imagingofthings/pyFFS.git
$ cd pyFFS
$ # git checkout <commit>

# Install requirements with conda
$ conda install --file requirements.txt

# Optionally install CuPy for GPU support
$ conda install -c conda-forge cupy

# Install pyFFS
$ pip install -e .[dev]
$ pytest                        # Run test suite
$ python setup.py build_sphinx  # Generate documentation

More information about CuPy setup can be found here.

New release

From master branch of original repo:

# Create tag and upload
$ git tag -a vX.X.X -m "Description."
$ git push origin vX.X.X

# Create package and upload to Pypi
$ python setup.py sdist
$ python -m twine upload  dist/pyFFS-X.X.X.tar.gz

You will need a username and password for uploading to PyPi.

Finally, on GitHub set the new tag as the latest release by pressing on it, at top right selecting “Edit tag”, and at the bottom pressing “Publish release”.

Remarks

pyFFS is developed and tested on x86_64 systems running Linux and macOS Catalina.

Citing this work

If you use this package in your own research, please cite our paper.

@article{10.1137/21M1448641,
    author = {Bezzam, Eric and Kashani, Sepand and Hurley, Paul and Vetterli, Martin and Simeoni, Matthieu},
    title = {PyFFS: A Python Library for Fast Fourier Series Computation and Interpolation with GPU Acceleration},
    year = {2022},
    issue_date = {Aug 2022},
    publisher = {Society for Industrial and Applied Mathematics},
    address = {USA},
    volume = {44},
    number = {4},
    issn = {1064-8275},
    url = {https://doi.org/10.1137/21M1448641},
    doi = {10.1137/21M1448641},
    journal = {SIAM J. Sci. Comput.},
    month = {jan},
    pages = {C346–C366},
    numpages = {21},
    keywords = {GPU, chirp Z-transform, numerical library, 97N80, fast Fourier series, bandlimited interpolation, 65T40, 42B05, 97N50, Python}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyFFS-2.2.3.tar.gz (36.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page