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 details)

Uploaded Source

File details

Details for the file pyFFS-2.2.3.tar.gz.

File metadata

  • Download URL: pyFFS-2.2.3.tar.gz
  • Upload date:
  • Size: 36.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.9.5

File hashes

Hashes for pyFFS-2.2.3.tar.gz
Algorithm Hash digest
SHA256 97aba6d943cfe86cf2d353678e15c9183c9f01ad1b5f52174be1e4e381695386
MD5 115d7f37a3a8e6719b6ec7b3832b940f
BLAKE2b-256 1f785b2f97f40c352905c91dd048639d0248ab407935441ab4082e9ab9a38b61

See more details on using hashes here.

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