Skip to main content

Differentiable and accelerated spherical transforms with JAX

Project description

https://github.com/astro-informatics/s2fft/actions/workflows/tests.yml/badge.svg?branch=main https://img.shields.io/badge/GitHub-s2fft-brightgreen.svg?style=flat https://codecov.io/gh/astro-informatics/s2fft/branch/main/graph/badge.svg?token=7QYAFAAWLE https://img.shields.io/badge/License-MIT-yellow.svg http://img.shields.io/badge/arXiv-2311.14670-orange.svg?style=flat https://img.shields.io/badge/code%20style-black-000000.svg https://colab.research.google.com/assets/colab-badge.svg

Differentiable and accelerated spherical transforms

S2FFT is a Python package for computing Fourier transforms on the sphere and rotation group using JAX and PyTorch. It leverages autodiff to provide differentiable transforms, which are also deployable on hardware accelerators (e.g. GPUs and TPUs).

More specifically, S2FFT provides support for spin spherical harmonic and Wigner transforms (for both real and complex signals), with support for adjoint transformations where needed, and comes with different optimisations (precompute or not) that one may select depending on available resources and desired angular resolution $L$.

As of version 1.0.2 S2FFT also provides PyTorch implementations of underlying precompute transforms. In future releases this support will be extended to our on-the-fly algorithms.

Documentation

Read the full documentation here.

Attribution

Should this code be used in any way, we kindly request that the following article is referenced. A BibTeX entry for this reference may look like:

@article{price:s2fft,
    author      = "Matthew A. Price and Jason D. McEwen",
    title       = "Differentiable and accelerated spherical harmonic and Wigner transforms",
    journal     = "Journal of Computational Physics",
    year        = "2023",
    eprint      = "arXiv:2311.14670"
}

You might also like to consider citing our related papers on which this code builds:

@article{mcewen:fssht,
    author      = "Jason D. McEwen and Yves Wiaux",
    title       = "A novel sampling theorem on the sphere",
    journal     = "IEEE Trans. Sig. Proc.",
    year        = "2011",
    volume      = "59",
    number      = "12",
    pages       = "5876--5887",
    eprint      = "arXiv:1110.6298",
    doi         = "10.1109/TSP.2011.2166394"
}
@article{mcewen:so3,
    author      = "Jason D. McEwen and Martin B{\"u}ttner and Boris ~Leistedt and Hiranya V. Peiris and Yves Wiaux",
    title       = "A novel sampling theorem on the rotation group",
    journal     = "IEEE Sig. Proc. Let.",
    year        = "2015",
    volume      = "22",
    number      = "12",
    pages       = "2425--2429",
    eprint      = "arXiv:1508.03101",
    doi         = "10.1109/LSP.2015.2490676"
}

License

We provide this code under an MIT open-source licence with the hope that it will be of use to a wider community.

Copyright 2023 Matthew Price, Jason McEwen and contributors.

S2FFT is free software made available under the MIT License. For details see the LICENSE file.

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

s2fft-1.0.2.tar.gz (7.6 MB view details)

Uploaded Source

Built Distribution

s2fft-1.0.2-py3-none-any.whl (96.1 kB view details)

Uploaded Python 3

File details

Details for the file s2fft-1.0.2.tar.gz.

File metadata

  • Download URL: s2fft-1.0.2.tar.gz
  • Upload date:
  • Size: 7.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.0

File hashes

Hashes for s2fft-1.0.2.tar.gz
Algorithm Hash digest
SHA256 ba868f12f149ced70fd8025d0243977a649a3c03937891f31b24df64def2f736
MD5 82856ac59f4a6edf646aff370da6e72d
BLAKE2b-256 d25319c35c90a5b3e25995c7eb035a5d9907cd5b5c9041934265874b7f407067

See more details on using hashes here.

File details

Details for the file s2fft-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: s2fft-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 96.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.0

File hashes

Hashes for s2fft-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ae2b13094365aacdb93462bbe8ec517c78db0bd0f5b5d04ec70637d82f215ef9
MD5 95be1e933207013511a444239f5f3d54
BLAKE2b-256 478e19b942ca30796d6d8ee94a1e156b2556225987cd01ae4849b7f821d24709

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