Skip to content

Commit

Permalink
Deploying to gh-pages from @ 50622a4 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
CosmoMatt committed Apr 9, 2024
1 parent 833c704 commit 2b015eb
Show file tree
Hide file tree
Showing 53 changed files with 4,560 additions and 1,692 deletions.
2 changes: 1 addition & 1 deletion .buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: e7a187073639b59adaedc05be984cab6
config: 38638072994b0ca2d39ba86d2b77edff
tags: 645f666f9bcd5a90fca523b33c5a78b7
4 changes: 2 additions & 2 deletions _sources/api/filter_factory/filters.rst.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
:html_theme.sidebar_secondary.remove:

**************************
Filter Generator
Filter functions
**************************
.. automodule:: s2wav.filter_factory.filters
.. automodule:: s2wav.filters
:members:
32 changes: 15 additions & 17 deletions _sources/api/filter_factory/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,26 @@ Filter Factory

* - Function Name
- Description
* - :func:`~s2wav.filter_factory.filters.filters_axisym`
* - :func:`~s2wav.filters.filters_axisym`
- Computes wavelet kernels :math:`\Psi^j_{\ell m}` and scaling kernel :math:`\Phi_{\ell m}` in harmonic space.
* - :func:`~s2wav.filter_factory.filters.filters_directional`
* - :func:`~s2wav.filters.filters_directional`
- Generates the harmonic coefficients for the directional tiling wavelets in harmonic space.
* - :func:`~s2wav.filter_factory.filters.filters_axisym_vectorised`
- Vectorised implementation of :func:`~s2wav.filter_factory.filters.filters_directional`.
* - :func:`~s2wav.filter_factory.filters.filters_directional_vectorised`
- Vectorised implementation of :func:`~s2wav.filter_factory.filters.filters_directional`.
* - :func:`~s2wav.filters.filters_axisym_vectorised`
- Vectorised implementation of :func:`~s2wav.filters.filters_directional`.
* - :func:`~s2wav.filters.filters_directional_vectorised`
- Vectorised implementation of :func:`~s2wav.filters.filters_directional`.

.. list-table:: Wavelet kernel functions.
:widths: 25 25
:header-rows: 1

* - Function Name
- Description
* - :func:`~s2wav.filter_factory.kernels.tiling_integrand`
* - :func:`~s2wav.filters.tiling_integrand`
- Tiling integrand for scale-discretised wavelets.
* - :func:`~s2wav.filter_factory.kernels.part_scaling_fn`
* - :func:`~s2wav.filters.part_scaling_fn`
- Computes integral used to calculate smoothly decreasing function :math:`k_{\lambda}`.
* - :func:`~s2wav.filter_factory.kernels.k_lam`
* - :func:`~s2wav.filters.k_lam`
- Compute function :math:`k_{\lambda}` used as a wavelet generating function.

.. list-table:: Wavelet tiling functions.
Expand All @@ -38,18 +38,16 @@ Filter Factory

* - Function Name
- Description
* - :func:`~s2wav.filter_factory.tiling.tiling_direction`
* - :func:`~s2wav.filters.tiling_direction`
- Generates the harmonic coefficients for the directionality component of the tiling functions.
* - :func:`~s2wav.filter_factory.tiling.spin_normalization`
* - :func:`~s2wav.filters.spin_normalization`
- Computes the normalization factor for spin-lowered wavelets, which is :math:`\sqrt{\frac{(l+s)!}{(l-s)!}}`.
* - :func:`~s2wav.filter_factory.tiling.spin_normalization_vectorised`
- Vectorised version of :func:`~s2wav.filter_factory.tiling.spin_normalization`.
* - :func:`~s2wav.filters.spin_normalization_vectorised`
- Vectorised version of :func:`~s2wav.filters.spin_normalization`.

.. toctree::
:hidden:
:maxdepth: 2
:caption: Wavelet generators
:caption: Filter functions

filters
tiling
kernels
filters
2 changes: 1 addition & 1 deletion _sources/api/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ directory structure for the software.

.. toctree::
:hidden:
:maxdepth: 1
:maxdepth: 2
:caption: Namespaces

transforms/index
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
:html_theme.sidebar_secondary.remove:

**************************
Wavelet Kernels
Numpy Transforms
**************************
.. automodule:: s2wav.filter_factory.kernels
.. automodule:: s2wav.transforms.base
:members:
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
:html_theme.sidebar_secondary.remove:

**************************
Tiling Functions
Matrice Precomputes
**************************
.. automodule:: s2wav.filter_factory.tiling
.. automodule:: s2wav.transforms.construct
:members:
67 changes: 52 additions & 15 deletions _sources/api/transforms/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,72 @@
Wavelet Transforms
**************************

.. list-table:: Wavelet transforms
.. list-table:: Numpy transforms
:widths: 25 25
:header-rows: 1

* - Function Name
- Description
* - :func:`~s2wav.transforms.numpy_wavelets.synthesis_looped`
* - :func:`~s2wav.transforms.base.synthesis_looped`
- Loopy implementation of mapping from wavelet to pixel space.
* - :func:`~s2wav.transforms.numpy_wavelets.synthesis`
* - :func:`~s2wav.transforms.base.synthesis`
- Vectorised implementation of mapping from wavelet to pixel space.
* - :func:`~s2wav.transforms.numpy_wavelets.analysis_looped`
* - :func:`~s2wav.transforms.base.analysis_looped`
- Loopy implementation of mapping from pixel to wavelet space.
* - :func:`~s2wav.transforms.numpy_wavelets.analysis`
* - :func:`~s2wav.transforms.base.analysis`
- Vectorised implementation of mapping from pixel to wavelet space.

* - :func:`~s2wav.transforms.jax_wavelets.synthesis`
- JAX implementation of mapping from wavelet to pixel space.
* - :func:`~s2wav.transforms.jax_wavelets.analysis`
- JAX implementation of mapping from pixel to wavelet space.
* - :func:`~s2wav.transforms.jax_wavelets.flm_to_analysis`
- JAX implementation of mapping from harmonic to wavelet space.
* - :func:`~s2wav.transforms.jax_wavelets.generate_wigner_precomputes`
- JAX function to generate precompute arrays for underlying Wigner transforms.
.. list-table:: JAX transforms
:widths: 25 25
:header-rows: 1

* - Function Name
- Description
* - :func:`~s2wav.transforms.wavelet.synthesis`
- JAX implementation of mapping from wavelet to pixel space (Recursive).
* - :func:`~s2wav.transforms.wavelet.analysis`
- JAX implementation of mapping from pixel to wavelet space (Recursive).
* - :func:`~s2wav.transforms.wavelet.flm_to_analysis`
- JAX implementation of mapping from harmonic to wavelet coefficients only (Recursive).
* - :func:`~s2wav.transforms.wavelet_precompute.synthesis`
- JAX implementation of mapping from wavelet to pixel space (fully precompute).
* - :func:`~s2wav.transforms.wavelet_precompute.analysis`
- JAX implementation of mapping from pixel to wavelet space (fully precompute).
* - :func:`~s2wav.transforms.wavelet_precompute.flm_to_analysis`
- JAX implementation of mapping from harmonic to wavelet coefficients only (fully precompute).

.. list-table:: PyTorch transforms
:widths: 25 25
:header-rows: 1

* - Function Name
- Description
* - :func:`~s2wav.transforms.wavelet_precompute_torch.synthesis`
- PyTorch implementation of mapping from wavelet to pixel space (fully precompute).
* - :func:`~s2wav.transforms.wavelet_precompute_torch.analysis`
- PyTorch implementation of mapping from pixel to wavelet space (fully precompute).
* - :func:`~s2wav.transforms.wavelet_precompute_torch.flm_to_analysis`
- PyTorch implementation of mapping from harmonic to wavelet coefficients only (fully precompute).

.. list-table:: Matrices precomputations
:widths: 25 25
:header-rows: 1

* - Function Name
- Description
* - :func:`~s2wav.transforms.construct.generate_wigner_precomputes`
- JAX/PyTorch function to generate precompute arrays for underlying Wigner transforms.
* - :func:`~s2wav.transforms.construct.generate_full_precomputes`
- JAX/PyTorch function to generate precompute arrays for fully precompute transforms.

.. toctree::
:hidden:
:maxdepth: 2
:caption: Wavelet transform

numpy_wavelets
jax_wavelets
base
construct
wavelet
wavelet_precompute
wavelet_precompute_torch

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
:html_theme.sidebar_secondary.remove:

**************************
Transforms (JAX)
JAX Transforms (Recursive)
**************************
.. automodule:: s2wav.transforms.jax_wavelets
.. automodule:: s2wav.transforms.wavelet
:members:
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
:html_theme.sidebar_secondary.remove:

**************************
Transforms (numpy)
JAX Transforms (Precompute)
**************************
.. automodule:: s2wav.transforms.numpy_wavelets
.. automodule:: s2wav.transforms.wavelet_precompute
:members:
7 changes: 7 additions & 0 deletions _sources/api/transforms/wavelet_precompute_torch.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
:html_theme.sidebar_secondary.remove:

**************************
PyTorch Transforms (Precompute)
**************************
.. automodule:: s2wav.transforms.wavelet_precompute_torch
:members:
29 changes: 14 additions & 15 deletions _sources/api/utility/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ Utility Functions

* - Function Name
- Description
* - :func:`~s2wav.utils.shapes.L0_j`
* - :func:`~s2wav.samples.L0_j`
- Computes the minimum harmonic index supported by the given wavelet scale :math:`j`.
* - :func:`~s2wav.utils.shapes.n_wav_scales`
* - :func:`~s2wav.samples.n_wav_scales`
- Evalutes the total number of wavelet scales.
* - :func:`~s2wav.utils.shapes.j_max`
* - :func:`~s2wav.samples.j_max`
- Computes maximum wavelet scale required to ensure exact reconstruction.
* - :func:`~s2wav.utils.shapes.LN_j`
* - :func:`~s2wav.samples.LN_j`
- Computes the harmonic bandlimit and directionality for scale :math:`j`.
* - :func:`~s2wav.utils.shapes.scal_bandlimit`
* - :func:`~s2wav.samples.scal_bandlimit`
- Returns the harmominc bandlimit of the scaling coefficients.
* - :func:`~s2wav.utils.shapes.wav_j_bandlimit`
* - :func:`~s2wav.samples.wav_j_bandlimit`
- Returns the harmominc bandlimit of the scaling coefficients.

.. list-table:: Shape functions.
Expand All @@ -29,11 +29,11 @@ Utility Functions

* - Function Name
- Description
* - :func:`~s2wav.utils.shapes.f_scal`
* - :func:`~s2wav.samples.f_scal`
- Computes the shape of scaling coefficients in pixel-space.
* - :func:`~s2wav.utils.shapes.f_wav_j`
* - :func:`~s2wav.samples.f_wav_j`
- Computes the shape of wavelet coefficients :math:`f^j` in pixel-space.
* - :func:`~s2wav.utils.shapes.flmn_wav_j`
* - :func:`~s2wav.samples.flmn_wav_j`
- Returns the shape of wavelet coefficients :math:`f^j_{\ell m n}` in Wigner space.

.. list-table:: Array constructing and shape checking functions.
Expand All @@ -42,19 +42,18 @@ Utility Functions

* - Function Name
- Description
* - :func:`~s2wav.utils.shapes.construct_f`
* - :func:`~s2wav.samples.construct_f`
- Defines a list of arrays corresponding to f_wav.
* - :func:`~s2wav.utils.shapes.construct_flm`
* - :func:`~s2wav.samples.construct_flm`
- Returns the shape of scaling coefficients in harmonic space.
* - :func:`~s2wav.utils.shapes.construct_flmn`
* - :func:`~s2wav.samples.construct_flmn`
- Defines a list of arrays corresponding to flmn.
* - :func:`~s2wav.utils.shapes.wavelet_shape_check`
* - :func:`~s2wav.samples.wavelet_shape_check`
- Checks the shape of wavelet coefficients are correct.

.. toctree::
:hidden:
:maxdepth: 3
:caption: Utilities

math_functions
shapes
samples
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
**************************
Array Shape Functions
**************************
.. automodule:: s2wav.utils.shapes
.. automodule:: s2wav.samples
:members:
46 changes: 36 additions & 10 deletions _sources/index.rst.txt
Original file line number Diff line number Diff line change
@@ -1,16 +1,27 @@
Differentiable and accelerated spherical wavelets
===================================================

``S2WAV`` is a JAX package for computing wavelet transforms on the sphere and rotation
group. 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 :math:`L`.
`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 :math:`L`. `S2WAV` is a sister package of
`S2FFT <https://github.com/astro-informatics/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.

.. tip::
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.

Wavelet Transform |:zap:|
--------------------------
Expand Down Expand Up @@ -67,6 +78,21 @@ A BibTeX entry for ``S2WAV`` is:
eprint = "arXiv:2402.01282"
}
we also request that you cite the following paper

.. code-block::
@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 |:memo:|
-----------------

Expand Down
Loading

0 comments on commit 2b015eb

Please sign in to comment.