Skip to main content

Differentiable and accelerated wavelet transforms with JAX

Project description

https://github.com/astro-informatics/s2wav/actions/workflows/tests.yml/badge.svg?branch=main https://codecov.io/gh/astro-informatics/s2wav/branch/main/graph/badge.svg?token=ZES6J4K3KZ https://img.shields.io/badge/License-MIT-yellow.svg http://img.shields.io/badge/arXiv-2402.01282-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 wavelet transform on the sphere

S2WAV is a python package for computing wavelet transforms on the sphere and rotation group, both in JAX and PyTorch. It leverages autodiff to provide differentiable transforms, which are also deployable on modern hardware accelerators (e.g. GPUs and TPUs), and can be mapped across multiple accelerators.

More specifically, S2WAV provides support for scale-discretised wavelet transforms on the sphere and rotation group (for both real and complex signals), with support for adjoints where needed, and comes with a variety of different optimisations (e.g. precompute or not, multi-resolution algorithms) that one may select depending on available resources and desired angular resolution L. S2WAV is a sister package of S2FFT, both of which are part of the SAX project, which aims to provide comprehensive support for differentiable transforms on the sphere and rotation group.

As of version 1.0.0 S2WAV also provides partial frontend support for PyTorch. In future this will be expanded to full support. Also note that this release also provides JAX support for existing C spherical harmonic libraries, specifically SSHT. This works be wrapping python bindings with custom JAX frontends. Note that currently this C to JAX interoperability is limited to CPU.

Documentation

Read the full documentation here.

Attribution

A BibTeX entry for s2wav is:

@article{price:s2wav,
    author      = "Matthew A. Price and Alicja Polanska and Jessica Whitney and Jason D. McEwen",
    title       = "Differentiable and accelerated directional wavelet transform on the sphere and ball",
    year        = "2024",
    eprint      = "arXiv:2402.01282"
}

we also request that you cite the following paper

@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, submitted",
    year        = "2023",
    eprint      = "arXiv:2311.14670"
}

in which the core underlying algorithms for the spherical harmonic and Wigner transforms are developed.

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 2024 Matthew Price, Jessica Whtiney, Alicja Polanska, Jason McEwen and contributors.

S2WAV 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

s2wav-1.0.4.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

s2wav-1.0.4-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file s2wav-1.0.4.tar.gz.

File metadata

  • Download URL: s2wav-1.0.4.tar.gz
  • Upload date:
  • Size: 23.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.0

File hashes

Hashes for s2wav-1.0.4.tar.gz
Algorithm Hash digest
SHA256 cd9cf1e0f001f1830cefff2dbb4a08d7506e3cbba9a0e8f6bfcda9c57d837d57
MD5 b53cdd95cae1806c3e513e3605b72019
BLAKE2b-256 279761ddff691f172eecd917407e2e6151d99a8c92e6d6b7cdc20aad1dc2753d

See more details on using hashes here.

File details

Details for the file s2wav-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: s2wav-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 31.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.0

File hashes

Hashes for s2wav-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ba2ecd34d0f9c97be35a16ee91e954108e334b77d67b9e8823d0ca8d8150f743
MD5 2334dfadfe055f1e5d5b4a2b0434508b
BLAKE2b-256 fefe266bfc35dcb14ba2d1412f4e514832f653e4e6f79ba1cf8fd0114e14a49f

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