From 31d58939bb54b7a3356ffa642b29319afc10889b Mon Sep 17 00:00:00 2001
From: CosmoMatt <32554533+CosmoMatt@users.noreply.github.com>
Date: Mon, 15 Apr 2024 11:29:17 +0000
Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20astro-in?=
=?UTF-8?q?formatics/s2wav@9a52c1f5d1da8aa88f76407f4e8370ec7dae8f69=20?=
=?UTF-8?q?=F0=9F=9A=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.buildinfo | 2 +-
_static/documentation_options.js | 2 +-
api/filter_factory/filters.html | 8 ++--
api/filter_factory/index.html | 8 ++--
api/index.html | 8 ++--
api/transforms/base.html | 8 ++--
api/transforms/construct.html | 8 ++--
api/transforms/index.html | 8 ++--
api/transforms/wavelet.html | 43 +++++-------------
api/transforms/wavelet_precompute.html | 8 ++--
api/transforms/wavelet_precompute_torch.html | 8 ++--
api/utility/index.html | 8 ++--
api/utility/math_functions.html | 8 ++--
api/utility/samples.html | 8 ++--
assets/static_notebooks/example_notebook.html | 8 ++--
genindex.html | 8 ++--
index.html | 8 ++--
objects.inv | Bin 2536 -> 2536 bytes
py-modindex.html | 8 ++--
search.html | 8 ++--
searchindex.js | 2 +-
tutorials/index.html | 8 ++--
.../jax_ssht_transform/jax_transforms.html | 8 ++--
tutorials/jax_transform/jax_transforms.html | 8 ++--
.../numpy_transform/numpy_transforms.html | 8 ++--
.../torch_transform/torch_transforms.html | 8 ++--
user_guide/install.html | 8 ++--
27 files changed, 102 insertions(+), 123 deletions(-)
diff --git a/.buildinfo b/.buildinfo
index f200c7d..fed1b99 100644
--- a/.buildinfo
+++ b/.buildinfo
@@ -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: c0d879c33cb9183fa738e6ed0625166d
+config: a8cf00bf77cbf9f4901f6b32d0f9c0c5
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/_static/documentation_options.js b/_static/documentation_options.js
index fc2b2f3..7e8ac02 100644
--- a/_static/documentation_options.js
+++ b/_static/documentation_options.js
@@ -1,5 +1,5 @@
const DOCUMENTATION_OPTIONS = {
- VERSION: '1.0.3',
+ VERSION: '1.0.4',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
BUILDER: 'html',
diff --git a/api/filter_factory/filters.html b/api/filter_factory/filters.html
index 5d09686..715a71b 100644
--- a/api/filter_factory/filters.html
+++ b/api/filter_factory/filters.html
@@ -8,7 +8,7 @@
-
Filter functions — S2WAV 1.0.3 documentation
+ Filter functions — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -138,8 +138,8 @@
-
-
+
+
diff --git a/api/filter_factory/index.html b/api/filter_factory/index.html
index 04c9479..3743203 100644
--- a/api/filter_factory/index.html
+++ b/api/filter_factory/index.html
@@ -8,7 +8,7 @@
- Filter Factory — S2WAV 1.0.3 documentation
+ Filter Factory — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -138,8 +138,8 @@
-
-
+
+
diff --git a/api/index.html b/api/index.html
index 52677c5..a5fcf1f 100644
--- a/api/index.html
+++ b/api/index.html
@@ -8,7 +8,7 @@
- API — S2WAV 1.0.3 documentation
+ API — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -136,8 +136,8 @@
-
-
+
+
diff --git a/api/transforms/base.html b/api/transforms/base.html
index 43d2f11..317262f 100644
--- a/api/transforms/base.html
+++ b/api/transforms/base.html
@@ -8,7 +8,7 @@
- Numpy Transforms — S2WAV 1.0.3 documentation
+ Numpy Transforms — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -138,8 +138,8 @@
-
-
+
+
diff --git a/api/transforms/construct.html b/api/transforms/construct.html
index db18f04..3daf0de 100644
--- a/api/transforms/construct.html
+++ b/api/transforms/construct.html
@@ -8,7 +8,7 @@
- Matrice Precomputes — S2WAV 1.0.3 documentation
+ Matrice Precomputes — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -138,8 +138,8 @@
-
-
+
+
diff --git a/api/transforms/index.html b/api/transforms/index.html
index 5417da7..edc9d4d 100644
--- a/api/transforms/index.html
+++ b/api/transforms/index.html
@@ -8,7 +8,7 @@
- Wavelet Transforms — S2WAV 1.0.3 documentation
+ Wavelet Transforms — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -136,8 +136,8 @@
-
-
+
+
diff --git a/api/transforms/wavelet.html b/api/transforms/wavelet.html
index 7def67f..9e9d48e 100644
--- a/api/transforms/wavelet.html
+++ b/api/transforms/wavelet.html
@@ -8,7 +8,7 @@
- JAX Transforms (Recursive) — S2WAV 1.0.3 documentation
+ JAX Transforms (Recursive) — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -138,8 +138,8 @@
-
-
+
+
@@ -482,7 +482,7 @@
JAX Transforms (Recursive)
-
-s2wav.transforms.wavelet.analysis(f: Array, L: int, N: int = 1, J_min: int = 0, lam: float = 2.0, spin: int = 0, sampling: str = 'mw', nside: int | None = None, reality: bool = False, filters: Tuple[Array] | None = None, precomps: List[List[Array]] | None = None, use_c_backend: bool = False, _ssht_backend: int = 1) → Tuple[Array]
+s2wav.transforms.wavelet.analysis(f: Array, L: int, N: int = 1, J_min: int = 0, lam: float = 2.0, spin: int = 0, sampling: str = 'mw', nside: int = None, reality: bool = False, filters: Tuple[Array] = None, precomps: List[List[Array]] = None) → Tuple[Array]
Wavelet analysis from pixel space to wavelet space for complex signals.
- Parameters:
@@ -502,11 +502,6 @@
filters (Tuple[jnp.ndarray], optional) – Precomputed wavelet filters. Defaults to None.
precomps (List[jnp.ndarray]) – Precomputed list of recursion coefficients. At most
of length \(L^2\), which is a minimal memory overhead.
-use_c_backend (bool, optional) – Execution mode in {“jax” = False, “jax_ssht” = True}.
-Defaults to False.
-_ssht_backend (int, optional, experimental) – Whether to default to SSHT core
-(set to 0) recursions or pick up ducc0 (set to 1) accelerated experimental
-backend. Use with caution.
- Returns:
@@ -526,7 +521,7 @@
-
-s2wav.transforms.wavelet.flm_to_analysis(flm: Array, L: int, N: int = 1, J_min: int = 0, J_max: int | None = None, lam: float = 2.0, sampling: str = 'mw', nside: int | None = None, reality: bool = False, filters: Tuple[Array] | None = None, precomps: List[List[Array]] | None = None, use_c_backend: bool = False, _ssht_backend: int = 1) → Tuple[Array]
+s2wav.transforms.wavelet.flm_to_analysis(flm: Array, L: int, N: int = 1, J_min: int = 0, J_max: int = None, lam: float = 2.0, sampling: str = 'mw', nside: int = None, reality: bool = False, filters: Tuple[Array] = None, precomps: List[List[Array]] = None) → Tuple[Array]
Wavelet analysis from pixel space to wavelet space for complex signals.
- Parameters:
@@ -546,11 +541,6 @@
filters (jnp.ndarray, optional) – Precomputed wavelet filters. Defaults to None.
precomps (List[jnp.ndarray]) – Precomputed list of recursion coefficients. At most
of length \(L^2\), which is a minimal memory overhead.
-use_c_backend (bool, optional) – Execution mode in {“jax” = False, “jax_ssht” = True}.
-Defaults to False.
-_ssht_backend (int, optional, experimental) – Whether to default to SSHT core
-(set to 0) recursions or pick up ducc0 (set to 1) accelerated experimental
-backend. Use with caution.
- Returns:
@@ -568,7 +558,7 @@
-
-s2wav.transforms.wavelet.synthesis(f_wav: Array, f_scal: Array, L: int, N: int = 1, J_min: int = 0, lam: float = 2.0, spin: int = 0, sampling: str = 'mw', nside: int | None = None, reality: bool = False, filters: Tuple[Array] | None = None, precomps: List[List[Array]] | None = None, use_c_backend: bool = False, _ssht_backend: int = 1) → Array
+s2wav.transforms.wavelet.synthesis(f_wav: Array, f_scal: Array, L: int, N: int = 1, J_min: int = 0, lam: float = 2.0, spin: int = 0, sampling: str = 'mw', nside: int = None, reality: bool = False, filters: Tuple[Array] = None, precomps: List[List[Array]] = None) → Array
- Computes the synthesis directional wavelet transform [1,2].
Specifically, this transform synthesises the signal \(_{s}f(\omega) \in \mathbb{S}^2\)
by summing the contributions from wavelet and scaling coefficients in harmonic space,
@@ -597,24 +587,13 @@
filters (Tuple[jnp.ndarray], optional) – Precomputed wavelet filters. Defaults to None.
precomps (List[jnp.ndarray]) – Precomputed list of recursion coefficients. At most
of length \(L^2\), which is a minimal memory overhead.
-use_c_backend (bool, optional) – Execution mode in {“jax” = False, “jax_ssht” = True}.
-Defaults to False.
-_ssht_backend (int, optional, experimental) – Whether to default to SSHT core
-(set to 0) recursions or pick up ducc0 (set to 1) accelerated experimental
-backend. Use with caution.
-- Raises:
--
-
-- Returns:
-Signal \(f\) on the sphere with shape \([n_{\theta}, n_{\phi}]\).
+- Returns:
+Signal \(f\) on the sphere with shape \([n_{\theta}, n_{\phi}]\).
-- Return type:
-jnp.ndarray
+- Return type:
+jnp.ndarray
Notes
diff --git a/api/transforms/wavelet_precompute.html b/api/transforms/wavelet_precompute.html
index 2207e77..6b9dc17 100644
--- a/api/transforms/wavelet_precompute.html
+++ b/api/transforms/wavelet_precompute.html
@@ -8,7 +8,7 @@
- JAX Transforms (Precompute) — S2WAV 1.0.3 documentation
+ JAX Transforms (Precompute) — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -138,8 +138,8 @@
-
-
+
+
diff --git a/api/transforms/wavelet_precompute_torch.html b/api/transforms/wavelet_precompute_torch.html
index 69d106f..38b0623 100644
--- a/api/transforms/wavelet_precompute_torch.html
+++ b/api/transforms/wavelet_precompute_torch.html
@@ -8,7 +8,7 @@
- PyTorch Transforms (Precompute) — S2WAV 1.0.3 documentation
+ PyTorch Transforms (Precompute) — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -138,8 +138,8 @@
-
-
+
+
diff --git a/api/utility/index.html b/api/utility/index.html
index cb6fe98..e23aff4 100644
--- a/api/utility/index.html
+++ b/api/utility/index.html
@@ -8,7 +8,7 @@
- Utility Functions — S2WAV 1.0.3 documentation
+ Utility Functions — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -138,8 +138,8 @@
-
-
+
+
diff --git a/api/utility/math_functions.html b/api/utility/math_functions.html
index 046ae50..6f7916d 100644
--- a/api/utility/math_functions.html
+++ b/api/utility/math_functions.html
@@ -8,7 +8,7 @@
- Maths Functions — S2WAV 1.0.3 documentation
+ Maths Functions — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -134,8 +134,8 @@
-
-
+
+
diff --git a/api/utility/samples.html b/api/utility/samples.html
index 7915ffd..bb26058 100644
--- a/api/utility/samples.html
+++ b/api/utility/samples.html
@@ -8,7 +8,7 @@
- Array Shape Functions — S2WAV 1.0.3 documentation
+ Array Shape Functions — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -137,8 +137,8 @@
-
-
+
+
diff --git a/assets/static_notebooks/example_notebook.html b/assets/static_notebooks/example_notebook.html
index bd673ed..86b0ff2 100644
--- a/assets/static_notebooks/example_notebook.html
+++ b/assets/static_notebooks/example_notebook.html
@@ -8,7 +8,7 @@
- <no title> — S2WAV 1.0.3 documentation
+ <no title> — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -134,8 +134,8 @@
-
-
+
+
diff --git a/genindex.html b/genindex.html
index b5b6d2c..a4ee945 100644
--- a/genindex.html
+++ b/genindex.html
@@ -7,7 +7,7 @@
- Index — S2WAV 1.0.3 documentation
+ Index — S2WAV 1.0.4 documentation
@@ -42,7 +42,7 @@
-
+
@@ -134,8 +134,8 @@
-
-
+
+
diff --git a/index.html b/index.html
index 88c76f2..161f82d 100644
--- a/index.html
+++ b/index.html
@@ -8,7 +8,7 @@
- Differentiable and accelerated spherical wavelets — S2WAV 1.0.3 documentation
+ Differentiable and accelerated spherical wavelets — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -137,8 +137,8 @@
-
-
+
+
diff --git a/objects.inv b/objects.inv
index 75b7025e1c4b815d4b9f4d2ed856923b0321238a..043e1b734b76d69fea82389ec1d90df376c1be39 100644
GIT binary patch
delta 12
TcmaDM{6ctwEu+asyH%V3A&3N<
delta 12
TcmaDM{6ctwEu-;9yH%V3A%g^(
diff --git a/py-modindex.html b/py-modindex.html
index 548817b..3a472f2 100644
--- a/py-modindex.html
+++ b/py-modindex.html
@@ -7,7 +7,7 @@
- Python Module Index — S2WAV 1.0.3 documentation
+ Python Module Index — S2WAV 1.0.4 documentation
@@ -42,7 +42,7 @@
-
+
@@ -137,8 +137,8 @@
-
-
+
+
diff --git a/search.html b/search.html
index 4a688c5..3a3cbd2 100644
--- a/search.html
+++ b/search.html
@@ -6,7 +6,7 @@
- Search - S2WAV 1.0.3 documentation
+ Search - S2WAV 1.0.4 documentation
@@ -41,7 +41,7 @@
-
+
@@ -136,8 +136,8 @@
-
-
+
+
diff --git a/searchindex.js b/searchindex.js
index dcd4166..bd3d1e7 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["api/filter_factory/filters", "api/filter_factory/index", "api/index", "api/transforms/base", "api/transforms/construct", "api/transforms/index", "api/transforms/wavelet", "api/transforms/wavelet_precompute", "api/transforms/wavelet_precompute_torch", "api/utility/index", "api/utility/math_functions", "api/utility/samples", "assets/static_notebooks/example_notebook", "index", "tutorials/index", "tutorials/jax_ssht_transform/jax_transforms", "tutorials/jax_transform/jax_transforms", "tutorials/numpy_transform/numpy_transforms", "tutorials/torch_transform/torch_transforms", "user_guide/install"], "filenames": ["api/filter_factory/filters.rst", "api/filter_factory/index.rst", "api/index.rst", "api/transforms/base.rst", "api/transforms/construct.rst", "api/transforms/index.rst", "api/transforms/wavelet.rst", "api/transforms/wavelet_precompute.rst", "api/transforms/wavelet_precompute_torch.rst", "api/utility/index.rst", "api/utility/math_functions.rst", "api/utility/samples.rst", "assets/static_notebooks/example_notebook.ipynb", "index.rst", "tutorials/index.rst", "tutorials/jax_ssht_transform/jax_transforms.nblink", "tutorials/jax_transform/jax_transforms.nblink", "tutorials/numpy_transform/numpy_transforms.nblink", "tutorials/torch_transform/torch_transforms.nblink", "user_guide/install.rst"], "titles": ["Filter functions", "Filter Factory", "API", "Numpy Transforms", "Matrice Precomputes", "Wavelet Transforms", "JAX Transforms (Recursive)", "JAX Transforms (Precompute)", "PyTorch Transforms (Precompute)", "Utility Functions", "Maths Functions", "Array Shape Functions", "<no title>", "Differentiable and accelerated spherical wavelets", "Notebooks", "Wavelet transform (JAX-SSHT)", "Wavelet transform (JAX)", "Wavelet transform (Numpy)", "Wavelet transform (PyTorch)", "Installation"], "terms": {"s2wav": [0, 2, 3, 4, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19], "filters_axisym": [0, 1], "l": [0, 1, 3, 4, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18], "int": [0, 3, 4, 6, 7, 8, 11], "j_min": [0, 3, 4, 6, 7, 8, 11], "0": [0, 3, 4, 6, 7, 8, 11, 13], "lam": [0, 3, 4, 6, 7, 8, 11], "float": [0, 3, 4, 6, 7, 8, 11], "2": [0, 3, 4, 6, 7, 8, 11, 12, 14, 15, 16, 17, 18], "tupl": [0, 3, 6, 7, 8, 11], "ndarrai": [0, 3, 4, 6, 7, 11], "comput": [0, 1, 3, 4, 6, 7, 8, 9, 11, 13, 14], "wavelet": [0, 3, 4, 6, 7, 8, 9, 11, 14], "kernel": [0, 11], "psi": [0, 1], "j_": [0, 1, 3, 9, 11], "ell": [0, 1, 9, 11], "m": [0, 1, 9, 11], "scale": [0, 1, 3, 4, 6, 7, 8, 9, 11, 13, 15, 16, 17, 18], "phi_": [0, 1], "harmon": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15, 16, 17, 18], "space": [0, 1, 3, 5, 6, 7, 8, 9, 11, 13], "specif": [0, 3, 6, 7, 8, 13], "ar": [0, 7, 9, 11, 13, 14, 18, 19], "deriv": 0, "1": [0, 3, 4, 6, 7, 8, 11, 13, 15, 18], "where": [0, 13, 19], "defin": [0, 9, 11, 15, 16, 17, 18], "15": 0, "j": [0, 3, 6, 7, 8, 9, 11], "equiv": 0, "sqrt": [0, 1], "frac": [0, 1], "4": [0, 12, 15, 17, 18], "pi": 0, "kappa_": 0, "lambda": [0, 1, 3, 4, 6, 7, 8, 11], "delta_": 0, "m0": 0, "k_": [0, 1], "t": 0, "given": [0, 9, 11], "k_lam": [0, 1], "similarli": 0, "i": [0, 1, 2, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19], "16": [0, 15, 16, 17, 18], "nu_": 0, "j_0": 0, "notic": [0, 15, 16], "enforc": 0, "axisymmetr": 0, "e": [0, 13, 14], "coeffici": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 14, 15, 16, 17, 18], "zero": 0, "In": [0, 13], "thi": [0, 3, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19], "implement": [0, 1, 5, 13], "normalis": 0, "constant": 0, "ha": [0, 11, 13], "been": [0, 13], "omit": 0, "null": [0, 12, 15, 16, 17, 18], "subsequ": [0, 15, 16, 18], "paramet": [0, 3, 4, 6, 7, 8, 11], "band": [0, 3, 4, 6, 7, 8, 11], "limit": [0, 3, 4, 6, 7, 8, 11, 13, 14], "option": [0, 3, 4, 6, 7, 8, 11], "lowest": [0, 3, 4, 6, 7, 8, 11], "frequenc": [0, 3, 4, 6, 7, 8, 11], "us": [0, 1, 3, 4, 6, 7, 8, 11, 14, 15, 16, 17, 18], "default": [0, 3, 4, 6, 7, 8, 11], "which": [0, 1, 3, 4, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19], "determin": [0, 3, 4, 6, 7, 8, 11], "factor": [0, 1, 3, 4, 6, 7, 8, 11], "between": [0, 3, 4, 6, 7, 8, 11], "consecut": [0, 3, 4, 6, 7, 8, 11], "note": [0, 3, 4, 6, 7, 8, 11, 13, 18], "indic": [0, 3, 4, 6, 7, 8, 11], "dyadic": [0, 3, 4, 6, 7, 8, 11], "rais": [0, 3, 6, 7, 8, 11], "valueerror": [0, 6, 11], "neg": 0, "greater": 0, "than": 0, "return": [0, 3, 4, 6, 7, 8, 9, 11], "unnormalis": 0, "shape": [0, 3, 6, 7, 8], "el": [0, 11], "type": [0, 3, 4, 6, 7, 8, 11], "np": [0, 3, 11, 12, 15, 16, 17, 18], "b": [0, 3, 6, 7, 8], "leidstedt": [0, 3, 6, 7, 8], "et": [0, 3, 6, 7, 8, 13], "al": [0, 3, 6, 7, 8, 13], "s2let": [0, 3, 6, 7, 8], "A": [0, 3, 6, 7, 8, 13, 14], "code": [0, 3, 6, 7, 8, 12], "perform": [0, 3, 6, 7, 8, 13], "fast": [0, 3, 6, 7, 8, 14], "analysi": [0, 3, 5, 6, 7, 8, 14, 15, 16], "sphere": [0, 3, 6, 7, 8, 13, 14, 15, 16, 17, 18], "vol": [0, 3, 6, 7, 8], "558": [0, 3, 6, 7, 8], "p": [0, 3, 6, 7, 8], "a128": [0, 3, 6, 7, 8], "2013": [0, 3, 6, 7, 8, 13], "filters_axisym_jax": 0, "arrai": [0, 3, 4, 5, 6, 7, 8, 18], "jax": [0, 13, 14, 18], "version": [0, 1, 12, 13, 19], "filters_axisym_vectoris": [0, 1], "math": 0, "vectoris": [0, 1, 5], "filters_direct": [0, 1], "n": [0, 3, 4, 6, 7, 8, 9, 11, 12, 14, 15, 16, 17, 18, 19], "spin": [0, 1, 3, 6, 7, 8], "spin0": [0, 3], "using_torch": [0, 4, 18], "bool": [0, 3, 4, 6, 7, 8, 11], "fals": [0, 3, 4, 6, 7, 8, 11, 18], "gener": [0, 2, 4, 5, 15, 16, 17, 18], "direct": [0, 1, 3, 6, 7, 8, 13, 14, 15, 16, 17, 18], "tile": [0, 13], "base": [0, 3, 14], "equat": [0, 3, 6, 7, 8], "36": 0, "paper": [0, 13], "upper": [0, 3, 4, 6, 7, 8, 11], "azimuth": [0, 3, 4, 6, 7, 8, 15, 16, 17, 18], "integ": [0, 3, 6, 7, 8], "transform": [0, 4, 11, 14], "number": [0, 9, 11], "wa": [0, 19], "lower": [0, 1, 11], "from": [0, 3, 4, 5, 6, 7, 8, 11, 13], "desir": [0, 4, 13], "frontend": [0, 4, 13, 14], "mcewen": [0, 3, 6, 7, 8, 13], "arxiv": [0, 3, 6, 7, 8, 13], "preprint": [0, 3, 6, 7, 8], "1509": [0, 3, 6, 7, 8], "06749": [0, 3, 6, 7, 8], "2015": [0, 3, 6, 7, 8], "filters_directional_jax": 0, "filters_directional_vectoris": [0, 1, 15, 16, 18], "quad_it": 0, "300": 0, "int_t": 0, "text": [0, 3, 11, 12], "d": [0, 12, 13], "prime": 0, "s_": 0, "int_": 0, "integrand": [0, 1], "": [0, 1, 3, 6, 7, 8, 15, 16], "big": 0, "infinit": [0, 13], "differenti": [0, 18], "cauchi": [0, 13], "schwartz": [0, 13], "c": [0, 6, 11, 13, 15], "infti": 0, "total": [0, 9, 11], "iter": [0, 11], "quadratur": 0, "integr": [0, 1], "valu": [0, 3], "parametris": 0, "requir": [0, 3, 4, 6, 7, 8, 9, 11, 19], "tiling_axisym": 0, "k_lam_jax": 0, "part_scaling_fn": [0, 1], "calcul": [0, 1, 15, 16, 17, 18], "smoothli": [0, 1], "decreas": [0, 1], "intermedi": 0, "step": 0, "trapezium": 0, "method": 0, "tiling_integrand": [0, 1], "rightarrow": 0, "One": [0, 19], "basic": [0, 12], "mathemat": 0, "need": [0, 13, 18, 19], "carri": 0, "out": 0, "numer": [0, 18], "dure": 0, "tiling_direct": [0, 1], "direction": [0, 1, 9, 11], "compon": [0, 1], "formal": 0, "follow": [0, 12, 13, 14, 19], "_": [0, 3, 6, 7, 8], "eta_": 0, "nu": 0, "vu": 0, "gamma": 0, "binom": [0, 11], "first": [0, 15, 16, 18, 19], "orient": [0, 11], "tiling_direction_jax": 0, "discretis": [0, 1, 13], "real": [0, 13], "argument": 0, "over": [0, 11], "we": [0, 13, 14, 15, 16, 17, 18, 19], "name": [1, 5, 9, 12], "descript": [1, 5, 9], "spin_norm": 1, "normal": 1, "spin_normalization_vectoris": 1, "automat": 2, "document": [2, 12], "all": [2, 18], "function": [2, 4, 5, 13, 15, 16], "access": [2, 14], "through": [2, 14], "pip": [2, 15, 16, 17, 18, 19], "instal": [2, 15, 16, 17, 18], "packag": [2, 13, 14, 15, 16, 17, 18, 19], "below": 2, "an": [2, 12, 13, 15, 16, 17, 18, 19], "overview": 2, "directori": [2, 19], "structur": [2, 14], "softwar": [2, 13], "f": [3, 4, 6, 7, 8, 9, 11, 14, 15, 16, 17, 18, 19], "sampl": [3, 4, 6, 7, 8, 11, 15, 16, 17, 18], "str": [3, 4, 6, 7, 8, 11], "mw": [3, 4, 6, 7, 8, 11, 15, 16, 17], "nside": [3, 4, 6, 7, 8, 11], "none": [3, 4, 6, 7, 8, 11], "realiti": [3, 4, 6, 7, 8], "multiresolut": [3, 11, 13], "true": [3, 4, 6, 7, 8, 11, 14, 15, 16, 18], "scatter": [3, 11, 13], "pixel": [3, 5, 6, 7, 8, 9, 11, 13], "complex": [3, 6, 7, 8, 13], "signal": [3, 6, 7, 8, 13, 14, 15, 16, 17, 18], "n_": [3, 6, 7, 8, 11], "theta": [3, 6, 7, 8, 11], "phi": [3, 6, 7, 8, 11], "bandlimit": [3, 4, 6, 7, 8, 11, 15, 16, 17, 18], "input": [3, 6, 7, 8], "output": [3, 12], "spheric": [3, 4, 6, 7, 8, 11, 14, 15, 16, 17, 18], "scheme": [3, 4, 6, 7, 8, 11, 15, 16, 17], "mwss": [3, 4, 6, 7, 8, 11], "dh": [3, 4, 6, 7, 8, 11], "healpix": [3, 4, 6, 7, 8, 11], "resolut": [3, 4, 6, 7, 8, 11, 13], "onli": [3, 4, 5, 6, 7, 8, 11, 18, 19], "whether": [3, 4, 6, 7, 8, 11], "mathbb": [3, 4, 6, 7, 8], "r": [3, 4, 6, 7, 8, 19], "exploit": [3, 4, 6, 7, 8], "conjug": [3, 4, 6, 7, 8], "symmetri": [3, 4, 6, 7, 8], "store": [3, 11], "max": [3, 11], "its": [3, 11], "own": [3, 11], "If": [3, 6, 11], "absolut": [3, 14, 15, 16, 17, 18], "2n": [3, 6, 7, 8, 11, 12], "f_scal": [3, 6, 7, 8, 9, 11, 14], "f_wav": [3, 6, 7, 8, 9, 11, 14], "analysis_loop": [3, 5], "synthesi": [3, 5, 6, 7, 8, 14, 15, 16], "synthesis": [3, 6, 7, 8], "omega": [3, 6, 7, 8], "sum": [3, 6, 7, 8], "contribut": [3, 6, 7, 8, 13], "see": [3, 6, 7, 8, 13], "27": [3, 6, 7, 8], "param": [3, 7, 8], "assertionerror": [3, 6, 7, 8], "incorrect": [3, 6, 7, 8], "synthesis_loop": [3, 5], "construct": [4, 13, 18], "generate_full_precomput": [4, 5, 18], "forward": [4, 18], "nospher": 4, "list": [4, 6, 7, 8, 9, 11], "associ": [4, 19], "underli": [4, 5, 13, 15], "wigner": [4, 5, 9, 11, 13, 14, 15, 16, 17, 18], "_description_": 4, "recurs": [4, 5, 7, 8, 18], "jnp": [4, 6, 7, 11], "generate_wigner_precomput": [4, 5], "loopi": 5, "map": [5, 13, 14], "flm_to_analysi": [5, 6, 7, 8], "fulli": 5, "filter": [6, 7, 8, 11, 13, 15, 16, 18], "precomp": [6, 7, 8, 18], "use_c_backend": [6, 14, 15], "_ssht_backend": 6, "precomput": [6, 13, 18], "At": [6, 7, 8, 14], "most": [6, 7, 8, 19], "length": [6, 7, 8], "minim": [6, 7, 8, 11], "memori": [6, 7, 8, 11, 14], "overhead": [6, 7, 8], "execut": [6, 19], "mode": [6, 14], "jax_ssht": 6, "experiment": 6, "ssht": [6, 13, 14], "core": [6, 13, 18, 19], "set": 6, "pick": [6, 11, 19], "up": [6, 18, 19], "ducc0": 6, "acceler": 6, "backend": [6, 15], "caution": 6, "flm": [6, 7, 8, 15, 16, 17, 18], "j_max": [6, 7, 8, 9, 11], "highest": [6, 7, 11], "provid": [6, 7, 13, 18, 19], "wavelet_precomput": 7, "_precomp_shift": 7, "duplic": 7, "wavelet_precompute_torch": 8, "tensor": [8, 11, 18], "torch": [8, 11, 18], "l0_j": [9, 11], "minimum": [9, 11], "index": [9, 11, 12], "support": [9, 11, 13, 18], "n_wav_scal": [9, 11], "evalut": [9, 11], "maximum": [9, 11], "ensur": [9, 11, 19], "exact": [9, 11, 15, 16, 17, 18], "reconstruct": [9, 11], "ln_j": [9, 11], "scal_bandlimit": [9, 11], "harmominc": [9, 11], "wav_j_bandlimit": [9, 11], "f_wav_j": [9, 11], "flmn_wav_j": [9, 11], "construct_f": [9, 11], "correspond": [9, 11], "construct_flm": [9, 11], "construct_flmn": [9, 11], "flmn": [9, 11], "wavelet_shape_check": [9, 11], "correct": [9, 11], "consid": 11, "The": [11, 13, 19], "multipol": 11, "gl": 11, "binomial_coeffici": 11, "k": 11, "binomi": 11, "element": 11, "choos": 11, "possibl": 11, "subset": 11, "binomial_coefficient_jax": 11, "ext": 11, "creat": [11, 19], "optimis": [11, 13], "empti": 11, "write": 11, "data": [11, 15, 16, 17, 18], "construct_f_jax": 11, "construct_f_torch": 11, "2l": 11, "construct_flm_jax": 11, "construct_flmn_jax": 11, "construct_flmn_torch": 11, "each": 11, "compact": 11, "degre": 11, "therefor": 11, "conserv": 11, "inform": 11, "fraction": 11, "per": 11, "As": [11, 13], "differ": [11, 13], "overal": 11, "being": [11, 14, 19], "one": [11, 13, 19], "within": [11, 19], "needlet": [11, 13], "level": [11, 12, 14], "f_w": 11, "f_": 11, "check": [11, 15, 16, 17, 18], "correctli": 11, "cell": 12, "cell_typ": 12, "markdown": 12, "metadata": 12, "sourc": 12, "tutorialn": 12, "just": [12, 15, 16, 17, 18], "do": 12, "whatev": 12, "you": [12, 13, 15, 16, 19], "like": [12, 13], "notebook": [12, 15, 16, 17, 18, 19], "Then": 12, "add": [12, 14], "nblink": 12, "file": [12, 13], "doc": 12, "tutori": [12, 14, 19], "look": [12, 13], "execution_count": 12, "import": [12, 14, 15, 16, 17, 18, 19], "numpi": [12, 15, 16, 18], "random": [12, 15, 16, 17, 18], "randn": 12, "100": 12, "path": 12, "asset": 12, "static_notebook": 12, "template_notebook": 12, "ipynb": 12, "main": 12, "edit": 12, "top": 12, "rst": 12, "ad": [12, 13, 19], "toctre": 12, "hidden": 12, "maxdepth": 12, "caption": 12, "tutorialsn": 12, "kernelspec": 12, "display_nam": 12, "python": [12, 13, 19], "3": [12, 15, 16, 17, 18, 19], "languag": 12, "python3": 12, "language_info": 12, "codemirror_mod": 12, "ipython": 12, "file_extens": 12, "py": 12, "mimetyp": 12, "x": 12, "nbconvert_export": 12, "pygments_lex": 12, "ipython3": 12, "8": [12, 17], "12": 12, "nbformat": 12, "nbformat_minor": 12, "rotat": [13, 15, 16, 17, 18], "group": [13, 15, 16, 17, 18], "both": [13, 19], "pytorch": 13, "It": 13, "leverag": 13, "autodiff": 13, "also": [13, 14], "deploy": 13, "modern": 13, "hardwar": 13, "g": [13, 14], "gpu": [13, 14], "tpu": 13, "can": [13, 14, 15, 16, 17, 18, 19], "across": 13, "multipl": 13, "more": [13, 14, 19], "adjoint": 13, "come": [13, 19], "varieti": 13, "multi": 13, "algorithm": [13, 18], "mai": [13, 19], "select": 13, "depend": [13, 19], "avail": [13, 14], "resourc": 13, "angular": 13, "sister": 13, "s2fft": [13, 15, 16, 17, 18], "part": 13, "sax": 13, "project": [13, 19], "aim": 13, "comprehens": 13, "partial": 13, "futur": [13, 15, 16], "expand": 13, "full": 13, "releas": [13, 14, 19], "exist": [13, 14, 19], "librari": [13, 15], "work": [13, 15, 16, 17, 18, 19], "wrap": 13, "bind": 13, "custom": 13, "current": [13, 18], "interoper": 13, "cpu": [13, 14], "updat": [13, 15, 16], "build": [13, 15, 16, 18, 19], "upon": 13, "leistedt": 13, "2017": 13, "design": 13, "have": [13, 19], "excel": 13, "localis": 13, "uncorrel": 13, "properti": 13, "successfulli": 13, "adopt": 13, "variou": 13, "applic": [13, 14], "2022": 13, "dictionari": 13, "line": 13, "straightforwardli": 13, "effici": [13, 14], "manner": 13, "euclidean": 13, "case": 13, "what": 13, "strongli": [13, 19], "encourag": 13, "ani": [13, 19], "interest": 13, "develop": 13, "simpl": [13, 14], "exampl": [13, 14, 15, 16, 17, 18], "would": 13, "new": 13, "chan": 13, "2016": 13, "ridgelet": 13, "price": 13, "2020": 13, "thank": 13, "goe": 13, "wonder": 13, "peopl": 13, "emojikei": 13, "matt": 13, "jason": 13, "alicja": 13, "polanska": 13, "jessica": 13, "whitnei": 13, "bibtex": 13, "entri": 13, "articl": 13, "author": 13, "matthew": 13, "titl": 13, "ball": 13, "year": 13, "2024": 13, "eprint": 13, "2402": 13, "01282": 13, "request": 13, "cite": 13, "journal": 13, "physic": 13, "submit": 13, "2023": 13, "2311": 13, "14670": 13, "copyright": 13, "whtinei": 13, "free": [13, 14], "made": 13, "under": 13, "mit": 13, "For": 13, "detail": 13, "seri": 14, "go": 14, "api": 14, "post": 14, "alpha": 14, "involv": [14, 18, 19], "time": 14, "feel": 14, "contact": 14, "contributor": 14, "advic": 14, "high": 14, "primari": [14, 19], "easili": 14, "To": [14, 19], "back": 14, "wrapper": 14, "though": 14, "nevertheless": 14, "veri": [14, 15, 16], "when": [14, 15, 16, 17, 18, 19], "call": [14, 15, 16, 18], "oper": 14, "simpli": [14, 19], "run": [14, 15, 16, 17, 18, 19], "dev": [15, 16, 17, 18], "let": [15, 16, 17, 18], "start": [15, 16, 17, 18], "some": [15, 16, 17, 18], "ll": [15, 16, 17, 18], "make": [15, 16], "sure": [15, 16], "configur": [15, 16], "64": [15, 16, 18], "bit": [15, 16, 18, 19], "precis": [15, 16, 17, 18], "32": [15, 16], "faster": [15, 16, 18], "potenti": [15, 16], "much": [15, 16, 18], "less": [15, 16], "config": [15, 16], "jax_enable_x64": [15, 16], "now": [15, 16, 17, 18], "constraint": [15, 16, 17, 18], "problem": [15, 16, 17, 18], "switch": 15, "rng": [15, 16, 17, 18], "default_rng": [15, 16, 17, 18], "12346161": [15, 16, 17, 18], "util": [15, 16, 17, 18], "signal_gener": [15, 16, 17, 18], "generate_flm": [15, 16, 17, 18], "invers": [15, 16, 17, 18], "bank": [15, 16, 18], "filter_bank": [15, 16, 18], "wavelet_coeff": [15, 16, 17, 18], "scaling_coeff": [15, 16, 17, 18], "pass": [15, 16], "slow": [15, 16, 18], "That": [15, 16], "becaus": [15, 16], "jit": [15, 16], "compil": [15, 16], "so": [15, 16, 18], "fater": [15, 16], "theorem": [15, 16, 17, 18], "chosen": [15, 16, 17, 18], "recov": [15, 16, 17, 18], "origin": [15, 16, 17, 18], "machin": [15, 16, 17, 18, 19], "f_check": [15, 16, 17, 18], "again": [15, 16, 18], "quit": [15, 16, 18], "should": [15, 16, 18, 19], "doubl": [15, 16, 17, 18], "actual": [15, 16, 17, 18], "got": [15, 16, 17, 18], "5": [15, 16, 17, 18], "print": [15, 16, 17, 18], "mean": [15, 16, 17, 18], "error": [15, 16, 17, 18], "nanmean": [15, 16, 17, 18], "ab": [15, 16, 17, 18], "1009715781712507e": 15, "14": [15, 16, 17, 18], "6": [16, 17], "7": [16, 18], "068390707329961e": 16, "analysis_bas": 17, "synthesis_bas": 17, "056856753687673e": 17, "until": 18, "around": 18, "sim1024": 18, "fly": 18, "alreadi": 18, "reach": 18, "soon": 18, "program": 18, "ecosystem": 18, "dramat": 18, "affect": 18, "even": 18, "moder": 18, "convert": 18, "f_torch": 18, "from_numpi": 18, "cach": 18, "matric": 18, "analysis_matric": 18, "synthesis_matric": 18, "straightforwar": 18, "linear": 18, "algebra": 18, "analysis_precomp_torch": 18, "synthesis_precomp_torch": 18, "resolve_conj": 18, "0514116979479282e": 18, "There": 19, "two": 19, "wai": 19, "either": 19, "recent": 19, "benefit": 19, "abl": 19, "local": 19, "unit": 19, "test": 19, "altern": 19, "directli": 19, "onlin": 19, "manag": 19, "simplest": 19, "after": 19, "outlin": 19, "collab": 19, "recommend": 19, "conda": 19, "environ": 19, "fresh": 19, "avoid": 19, "conflict": 19, "env_nam": 19, "9": 19, "activ": 19, "onc": 19, "clone": 19, "repositori": 19, "git": 19, "http": 19, "com": 19, "astro": 19, "informat": 19, "cd": 19, "root": 19, "success": 19, "txt": 19, "pytest": 19, "includ": 19, "jaxlib": 19, "howev": 19, "get": 19, "thing": 19, "guid": 19, "googl": 19, "summaris": 19, "driver": 19, "cuda": 19, "cudnn": 19, "pre": 19, "built": 19, "compat": 19, "wheel": 19, "shoulld": 19, "upgrad": 19, "linux": 19, "storag": 19, "googleapi": 19, "jax_cuda_releas": 19, "html": 19, "mani": 19, "architectur": 19, "cuda11_cudnn86": 19, "match": 19, "those": 19}, "objects": {"s2wav": [[0, 0, 0, "-", "filters"], [11, 0, 0, "-", "samples"]], "s2wav.filters": [[0, 1, 1, "", "filters_axisym"], [0, 1, 1, "", "filters_axisym_jax"], [0, 1, 1, "", "filters_axisym_vectorised"], [0, 1, 1, "", "filters_directional"], [0, 1, 1, "", "filters_directional_jax"], [0, 1, 1, "", "filters_directional_vectorised"], [0, 1, 1, "", "k_lam"], [0, 1, 1, "", "k_lam_jax"], [0, 1, 1, "", "part_scaling_fn"], [0, 1, 1, "", "tiling_direction"], [0, 1, 1, "", "tiling_direction_jax"], [0, 1, 1, "", "tiling_integrand"]], "s2wav.samples": [[11, 1, 1, "", "L0_j"], [11, 1, 1, "", "LN_j"], [11, 1, 1, "", "binomial_coefficient"], [11, 1, 1, "", "binomial_coefficient_jax"], [11, 1, 1, "", "construct_f"], [11, 1, 1, "", "construct_f_jax"], [11, 1, 1, "", "construct_f_torch"], [11, 1, 1, "", "construct_flm"], [11, 1, 1, "", "construct_flm_jax"], [11, 1, 1, "", "construct_flmn"], [11, 1, 1, "", "construct_flmn_jax"], [11, 1, 1, "", "construct_flmn_torch"], [11, 1, 1, "", "f_scal"], [11, 1, 1, "", "f_wav_j"], [11, 1, 1, "", "flmn_wav_j"], [11, 1, 1, "", "j_max"], [11, 1, 1, "", "n_wav_scales"], [11, 1, 1, "", "scal_bandlimit"], [11, 1, 1, "", "wav_j_bandlimit"], [11, 1, 1, "", "wavelet_shape_check"]], "s2wav.transforms": [[3, 0, 0, "-", "base"], [4, 0, 0, "-", "construct"], [6, 0, 0, "-", "wavelet"], [7, 0, 0, "-", "wavelet_precompute"], [8, 0, 0, "-", "wavelet_precompute_torch"]], "s2wav.transforms.base": [[3, 1, 1, "", "analysis"], [3, 1, 1, "", "analysis_looped"], [3, 1, 1, "", "synthesis"], [3, 1, 1, "", "synthesis_looped"]], "s2wav.transforms.construct": [[4, 1, 1, "", "generate_full_precomputes"], [4, 1, 1, "", "generate_wigner_precomputes"]], "s2wav.transforms.wavelet": [[6, 1, 1, "", "analysis"], [6, 1, 1, "", "flm_to_analysis"], [6, 1, 1, "", "synthesis"]], "s2wav.transforms.wavelet_precompute": [[7, 1, 1, "", "analysis"], [7, 1, 1, "", "flm_to_analysis"], [7, 1, 1, "", "synthesis"]], "s2wav.transforms.wavelet_precompute_torch": [[8, 1, 1, "", "analysis"], [8, 1, 1, "", "flm_to_analysis"], [8, 1, 1, "", "synthesis"]]}, "objtypes": {"0": "py:module", "1": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "titleterms": {"filter": [0, 1], "function": [0, 1, 9, 10, 11], "factori": 1, "gener": 1, "wavelet": [1, 5, 13, 15, 16, 17, 18], "kernel": 1, "tile": 1, "api": 2, "numpi": [3, 5, 17], "transform": [3, 5, 6, 7, 8, 13, 15, 16, 17, 18], "matric": [4, 5], "precomput": [4, 5, 7, 8], "jax": [5, 6, 7, 15, 16, 19], "pytorch": [5, 8, 18], "recurs": 6, "util": 9, "bandlimit": 9, "shape": [9, 11], "arrai": [9, 11], "construct": 9, "check": 9, "math": 10, "differenti": 13, "acceler": 13, "spheric": 13, "contributor": 13, "attribut": 13, "licens": 13, "notebook": 14, "core": 14, "usag": 14, "c": 14, "backend": 14, "librari": 14, "support": 14, "ssht": 15, "instal": 19, "quick": 19, "pypi": 19, "from": 19, "sourc": 19, "github": 19, "nvidia": 19, "gpu": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx": 60}, "alltitles": {"Filter functions": [[0, "module-s2wav.filters"]], "Filter Factory": [[1, "filter-factory"]], "Filter generators.": [[1, "id1"]], "Wavelet kernel functions.": [[1, "id2"]], "Wavelet tiling functions.": [[1, "id3"]], "API": [[2, "api"]], "Numpy Transforms": [[3, "module-s2wav.transforms.base"]], "Matrice Precomputes": [[4, "module-s2wav.transforms.construct"]], "Wavelet Transforms": [[5, "wavelet-transforms"]], "Numpy transforms": [[5, "id1"]], "JAX transforms": [[5, "id2"]], "PyTorch transforms": [[5, "id3"]], "Matrices precomputations": [[5, "id4"]], "JAX Transforms (Recursive)": [[6, "module-s2wav.transforms.wavelet"]], "JAX Transforms (Precompute)": [[7, "jax-transforms-precompute"]], "PyTorch Transforms (Precompute)": [[8, "pytorch-transforms-precompute"]], "Utility Functions": [[9, "utility-functions"]], "Bandlimiting functions.": [[9, "id1"]], "Shape functions.": [[9, "id2"]], "Array constructing and shape checking functions.": [[9, "id3"]], "Maths Functions": [[10, "maths-functions"]], "Array Shape Functions": [[11, "module-s2wav.samples"]], "Differentiable and accelerated spherical wavelets": [[13, "differentiable-and-accelerated-spherical-wavelets"]], "Wavelet Transform \u26a1": [[13, "wavelet-transform-zap"]], "Contributors \u2728": [[13, "contributors"]], "Attribution \ud83d\udcda": [[13, "attribution-books"]], "License \ud83d\udcdd": [[13, "license-memo"]], "Notebooks": [[14, "notebooks"]], "Core usage \ud83d\ude80": [[14, "core-usage-rocket"]], "C backend library support \ud83d\udca1": [[14, "c-backend-library-support-bulb"]], "Wavelet transform (JAX-SSHT)": [[15, "Wavelet-transform-(JAX-SSHT)"]], "Wavelet transform (JAX)": [[16, "Wavelet-transform-(JAX)"]], "Wavelet transform (Numpy)": [[17, "Wavelet-transform-(Numpy)"]], "Wavelet transform (PyTorch)": [[18, "Wavelet-transform-(PyTorch)"]], "Installation": [[19, "installation"]], "Quick install (PyPi)": [[19, "quick-install-pypi"]], "Install from source (GitHub)": [[19, "install-from-source-github"]], "Installing JAX for NVIDIA GPUs": [[19, "installing-jax-for-nvidia-gpus"]]}, "indexentries": {"filters_axisym() (in module s2wav.filters)": [[0, "s2wav.filters.filters_axisym"]], "filters_axisym_jax() (in module s2wav.filters)": [[0, "s2wav.filters.filters_axisym_jax"]], "filters_axisym_vectorised() (in module s2wav.filters)": [[0, "s2wav.filters.filters_axisym_vectorised"]], "filters_directional() (in module s2wav.filters)": [[0, "s2wav.filters.filters_directional"]], "filters_directional_jax() (in module s2wav.filters)": [[0, "s2wav.filters.filters_directional_jax"]], "filters_directional_vectorised() (in module s2wav.filters)": [[0, "s2wav.filters.filters_directional_vectorised"]], "k_lam() (in module s2wav.filters)": [[0, "s2wav.filters.k_lam"]], "k_lam_jax() (in module s2wav.filters)": [[0, "s2wav.filters.k_lam_jax"]], "module": [[0, "module-s2wav.filters"], [3, "module-s2wav.transforms.base"], [4, "module-s2wav.transforms.construct"], [6, "module-s2wav.transforms.wavelet"], [7, "module-s2wav.transforms.wavelet_precompute"], [8, "module-s2wav.transforms.wavelet_precompute_torch"], [11, "module-s2wav.samples"]], "part_scaling_fn() (in module s2wav.filters)": [[0, "s2wav.filters.part_scaling_fn"]], "s2wav.filters": [[0, "module-s2wav.filters"]], "tiling_direction() (in module s2wav.filters)": [[0, "s2wav.filters.tiling_direction"]], "tiling_direction_jax() (in module s2wav.filters)": [[0, "s2wav.filters.tiling_direction_jax"]], "tiling_integrand() (in module s2wav.filters)": [[0, "s2wav.filters.tiling_integrand"]], "analysis() (in module s2wav.transforms.base)": [[3, "s2wav.transforms.base.analysis"]], "analysis_looped() (in module s2wav.transforms.base)": [[3, "s2wav.transforms.base.analysis_looped"]], "s2wav.transforms.base": [[3, "module-s2wav.transforms.base"]], "synthesis() (in module s2wav.transforms.base)": [[3, "s2wav.transforms.base.synthesis"]], "synthesis_looped() (in module s2wav.transforms.base)": [[3, "s2wav.transforms.base.synthesis_looped"]], "generate_full_precomputes() (in module s2wav.transforms.construct)": [[4, "s2wav.transforms.construct.generate_full_precomputes"]], "generate_wigner_precomputes() (in module s2wav.transforms.construct)": [[4, "s2wav.transforms.construct.generate_wigner_precomputes"]], "s2wav.transforms.construct": [[4, "module-s2wav.transforms.construct"]], "analysis() (in module s2wav.transforms.wavelet)": [[6, "s2wav.transforms.wavelet.analysis"]], "flm_to_analysis() (in module s2wav.transforms.wavelet)": [[6, "s2wav.transforms.wavelet.flm_to_analysis"]], "s2wav.transforms.wavelet": [[6, "module-s2wav.transforms.wavelet"]], "synthesis() (in module s2wav.transforms.wavelet)": [[6, "s2wav.transforms.wavelet.synthesis"]], "analysis() (in module s2wav.transforms.wavelet_precompute)": [[7, "s2wav.transforms.wavelet_precompute.analysis"]], "flm_to_analysis() (in module s2wav.transforms.wavelet_precompute)": [[7, "s2wav.transforms.wavelet_precompute.flm_to_analysis"]], "s2wav.transforms.wavelet_precompute": [[7, "module-s2wav.transforms.wavelet_precompute"]], "synthesis() (in module s2wav.transforms.wavelet_precompute)": [[7, "s2wav.transforms.wavelet_precompute.synthesis"]], "analysis() (in module s2wav.transforms.wavelet_precompute_torch)": [[8, "s2wav.transforms.wavelet_precompute_torch.analysis"]], "flm_to_analysis() (in module s2wav.transforms.wavelet_precompute_torch)": [[8, "s2wav.transforms.wavelet_precompute_torch.flm_to_analysis"]], "s2wav.transforms.wavelet_precompute_torch": [[8, "module-s2wav.transforms.wavelet_precompute_torch"]], "synthesis() (in module s2wav.transforms.wavelet_precompute_torch)": [[8, "s2wav.transforms.wavelet_precompute_torch.synthesis"]], "l0_j() (in module s2wav.samples)": [[11, "s2wav.samples.L0_j"]], "ln_j() (in module s2wav.samples)": [[11, "s2wav.samples.LN_j"]], "binomial_coefficient() (in module s2wav.samples)": [[11, "s2wav.samples.binomial_coefficient"]], "binomial_coefficient_jax() (in module s2wav.samples)": [[11, "s2wav.samples.binomial_coefficient_jax"]], "construct_f() (in module s2wav.samples)": [[11, "s2wav.samples.construct_f"]], "construct_f_jax() (in module s2wav.samples)": [[11, "s2wav.samples.construct_f_jax"]], "construct_f_torch() (in module s2wav.samples)": [[11, "s2wav.samples.construct_f_torch"]], "construct_flm() (in module s2wav.samples)": [[11, "s2wav.samples.construct_flm"]], "construct_flm_jax() (in module s2wav.samples)": [[11, "s2wav.samples.construct_flm_jax"]], "construct_flmn() (in module s2wav.samples)": [[11, "s2wav.samples.construct_flmn"]], "construct_flmn_jax() (in module s2wav.samples)": [[11, "s2wav.samples.construct_flmn_jax"]], "construct_flmn_torch() (in module s2wav.samples)": [[11, "s2wav.samples.construct_flmn_torch"]], "f_scal() (in module s2wav.samples)": [[11, "s2wav.samples.f_scal"]], "f_wav_j() (in module s2wav.samples)": [[11, "s2wav.samples.f_wav_j"]], "flmn_wav_j() (in module s2wav.samples)": [[11, "s2wav.samples.flmn_wav_j"]], "j_max() (in module s2wav.samples)": [[11, "s2wav.samples.j_max"]], "n_wav_scales() (in module s2wav.samples)": [[11, "s2wav.samples.n_wav_scales"]], "s2wav.samples": [[11, "module-s2wav.samples"]], "scal_bandlimit() (in module s2wav.samples)": [[11, "s2wav.samples.scal_bandlimit"]], "wav_j_bandlimit() (in module s2wav.samples)": [[11, "s2wav.samples.wav_j_bandlimit"]], "wavelet_shape_check() (in module s2wav.samples)": [[11, "s2wav.samples.wavelet_shape_check"]]}})
\ No newline at end of file
+Search.setIndex({"docnames": ["api/filter_factory/filters", "api/filter_factory/index", "api/index", "api/transforms/base", "api/transforms/construct", "api/transforms/index", "api/transforms/wavelet", "api/transforms/wavelet_precompute", "api/transforms/wavelet_precompute_torch", "api/utility/index", "api/utility/math_functions", "api/utility/samples", "assets/static_notebooks/example_notebook", "index", "tutorials/index", "tutorials/jax_ssht_transform/jax_transforms", "tutorials/jax_transform/jax_transforms", "tutorials/numpy_transform/numpy_transforms", "tutorials/torch_transform/torch_transforms", "user_guide/install"], "filenames": ["api/filter_factory/filters.rst", "api/filter_factory/index.rst", "api/index.rst", "api/transforms/base.rst", "api/transforms/construct.rst", "api/transforms/index.rst", "api/transforms/wavelet.rst", "api/transforms/wavelet_precompute.rst", "api/transforms/wavelet_precompute_torch.rst", "api/utility/index.rst", "api/utility/math_functions.rst", "api/utility/samples.rst", "assets/static_notebooks/example_notebook.ipynb", "index.rst", "tutorials/index.rst", "tutorials/jax_ssht_transform/jax_transforms.nblink", "tutorials/jax_transform/jax_transforms.nblink", "tutorials/numpy_transform/numpy_transforms.nblink", "tutorials/torch_transform/torch_transforms.nblink", "user_guide/install.rst"], "titles": ["Filter functions", "Filter Factory", "API", "Numpy Transforms", "Matrice Precomputes", "Wavelet Transforms", "JAX Transforms (Recursive)", "JAX Transforms (Precompute)", "PyTorch Transforms (Precompute)", "Utility Functions", "Maths Functions", "Array Shape Functions", "<no title>", "Differentiable and accelerated spherical wavelets", "Notebooks", "Wavelet transform (JAX-SSHT)", "Wavelet transform (JAX)", "Wavelet transform (Numpy)", "Wavelet transform (PyTorch)", "Installation"], "terms": {"s2wav": [0, 2, 3, 4, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19], "filters_axisym": [0, 1], "l": [0, 1, 3, 4, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18], "int": [0, 3, 4, 6, 7, 8, 11], "j_min": [0, 3, 4, 6, 7, 8, 11], "0": [0, 3, 4, 6, 7, 8, 11, 13], "lam": [0, 3, 4, 6, 7, 8, 11], "float": [0, 3, 4, 6, 7, 8, 11], "2": [0, 3, 4, 6, 7, 8, 11, 12, 14, 15, 16, 17, 18], "tupl": [0, 3, 6, 7, 8, 11], "ndarrai": [0, 3, 4, 6, 7, 11], "comput": [0, 1, 3, 4, 6, 7, 8, 9, 11, 13, 14], "wavelet": [0, 3, 4, 6, 7, 8, 9, 11, 14], "kernel": [0, 11], "psi": [0, 1], "j_": [0, 1, 3, 9, 11], "ell": [0, 1, 9, 11], "m": [0, 1, 9, 11], "scale": [0, 1, 3, 4, 6, 7, 8, 9, 11, 13, 15, 16, 17, 18], "phi_": [0, 1], "harmon": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15, 16, 17, 18], "space": [0, 1, 3, 5, 6, 7, 8, 9, 11, 13], "specif": [0, 3, 6, 7, 8, 13], "ar": [0, 7, 9, 11, 13, 14, 18, 19], "deriv": 0, "1": [0, 3, 4, 6, 7, 8, 11, 13, 15, 18], "where": [0, 13, 19], "defin": [0, 9, 11, 15, 16, 17, 18], "15": 0, "j": [0, 3, 6, 7, 8, 9, 11], "equiv": 0, "sqrt": [0, 1], "frac": [0, 1], "4": [0, 12, 15, 17, 18], "pi": 0, "kappa_": 0, "lambda": [0, 1, 3, 4, 6, 7, 8, 11], "delta_": 0, "m0": 0, "k_": [0, 1], "t": 0, "given": [0, 9, 11], "k_lam": [0, 1], "similarli": 0, "i": [0, 1, 2, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19], "16": [0, 15, 16, 17, 18], "nu_": 0, "j_0": 0, "notic": [0, 15, 16], "enforc": 0, "axisymmetr": 0, "e": [0, 13, 14], "coeffici": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 14, 15, 16, 17, 18], "zero": 0, "In": [0, 13], "thi": [0, 3, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19], "implement": [0, 1, 5, 13], "normalis": 0, "constant": 0, "ha": [0, 11, 13], "been": [0, 13], "omit": 0, "null": [0, 12, 15, 16, 17, 18], "subsequ": [0, 15, 16, 18], "paramet": [0, 3, 4, 6, 7, 8, 11], "band": [0, 3, 4, 6, 7, 8, 11], "limit": [0, 3, 4, 6, 7, 8, 11, 13, 14], "option": [0, 3, 4, 6, 7, 8, 11], "lowest": [0, 3, 4, 6, 7, 8, 11], "frequenc": [0, 3, 4, 6, 7, 8, 11], "us": [0, 1, 3, 4, 6, 7, 8, 11, 14, 15, 16, 17, 18], "default": [0, 3, 4, 6, 7, 8, 11], "which": [0, 1, 3, 4, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19], "determin": [0, 3, 4, 6, 7, 8, 11], "factor": [0, 1, 3, 4, 6, 7, 8, 11], "between": [0, 3, 4, 6, 7, 8, 11], "consecut": [0, 3, 4, 6, 7, 8, 11], "note": [0, 3, 4, 6, 7, 8, 11, 13, 18], "indic": [0, 3, 4, 6, 7, 8, 11], "dyadic": [0, 3, 4, 6, 7, 8, 11], "rais": [0, 3, 7, 8, 11], "valueerror": [0, 11], "neg": 0, "greater": 0, "than": 0, "return": [0, 3, 4, 6, 7, 8, 9, 11], "unnormalis": 0, "shape": [0, 3, 6, 7, 8], "el": [0, 11], "type": [0, 3, 4, 6, 7, 8, 11], "np": [0, 3, 11, 12, 15, 16, 17, 18], "b": [0, 3, 6, 7, 8], "leidstedt": [0, 3, 6, 7, 8], "et": [0, 3, 6, 7, 8, 13], "al": [0, 3, 6, 7, 8, 13], "s2let": [0, 3, 6, 7, 8], "A": [0, 3, 6, 7, 8, 13, 14], "code": [0, 3, 6, 7, 8, 12], "perform": [0, 3, 6, 7, 8, 13], "fast": [0, 3, 6, 7, 8, 14], "analysi": [0, 3, 5, 6, 7, 8, 14, 15, 16], "sphere": [0, 3, 6, 7, 8, 13, 14, 15, 16, 17, 18], "vol": [0, 3, 6, 7, 8], "558": [0, 3, 6, 7, 8], "p": [0, 3, 6, 7, 8], "a128": [0, 3, 6, 7, 8], "2013": [0, 3, 6, 7, 8, 13], "filters_axisym_jax": 0, "arrai": [0, 3, 4, 5, 6, 7, 8, 18], "jax": [0, 13, 14, 18], "version": [0, 1, 12, 13, 19], "filters_axisym_vectoris": [0, 1], "math": 0, "vectoris": [0, 1, 5], "filters_direct": [0, 1], "n": [0, 3, 4, 6, 7, 8, 9, 11, 12, 14, 15, 16, 17, 18, 19], "spin": [0, 1, 3, 6, 7, 8], "spin0": [0, 3], "using_torch": [0, 4, 18], "bool": [0, 3, 4, 6, 7, 8, 11], "fals": [0, 3, 4, 6, 7, 8, 11, 18], "gener": [0, 2, 4, 5, 15, 16, 17, 18], "direct": [0, 1, 3, 6, 7, 8, 13, 14, 15, 16, 17, 18], "tile": [0, 13], "base": [0, 3, 14], "equat": [0, 3, 6, 7, 8], "36": 0, "paper": [0, 13], "upper": [0, 3, 4, 6, 7, 8, 11], "azimuth": [0, 3, 4, 6, 7, 8, 15, 16, 17, 18], "integ": [0, 3, 6, 7, 8], "transform": [0, 4, 11, 14], "number": [0, 9, 11], "wa": [0, 19], "lower": [0, 1, 11], "from": [0, 3, 4, 5, 6, 7, 8, 11, 13], "desir": [0, 4, 13], "frontend": [0, 4, 13, 14], "mcewen": [0, 3, 6, 7, 8, 13], "arxiv": [0, 3, 6, 7, 8, 13], "preprint": [0, 3, 6, 7, 8], "1509": [0, 3, 6, 7, 8], "06749": [0, 3, 6, 7, 8], "2015": [0, 3, 6, 7, 8], "filters_directional_jax": 0, "filters_directional_vectoris": [0, 1, 15, 16, 18], "quad_it": 0, "300": 0, "int_t": 0, "text": [0, 3, 11, 12], "d": [0, 12, 13], "prime": 0, "s_": 0, "int_": 0, "integrand": [0, 1], "": [0, 1, 3, 6, 7, 8, 15, 16], "big": 0, "infinit": [0, 13], "differenti": [0, 18], "cauchi": [0, 13], "schwartz": [0, 13], "c": [0, 11, 13, 15], "infti": 0, "total": [0, 9, 11], "iter": [0, 11], "quadratur": 0, "integr": [0, 1], "valu": [0, 3], "parametris": 0, "requir": [0, 3, 4, 6, 7, 8, 9, 11, 19], "tiling_axisym": 0, "k_lam_jax": 0, "part_scaling_fn": [0, 1], "calcul": [0, 1, 15, 16, 17, 18], "smoothli": [0, 1], "decreas": [0, 1], "intermedi": 0, "step": 0, "trapezium": 0, "method": 0, "tiling_integrand": [0, 1], "rightarrow": 0, "One": [0, 19], "basic": [0, 12], "mathemat": 0, "need": [0, 13, 18, 19], "carri": 0, "out": 0, "numer": [0, 18], "dure": 0, "tiling_direct": [0, 1], "direction": [0, 1, 9, 11], "compon": [0, 1], "formal": 0, "follow": [0, 12, 13, 14, 19], "_": [0, 3, 6, 7, 8], "eta_": 0, "nu": 0, "vu": 0, "gamma": 0, "binom": [0, 11], "first": [0, 15, 16, 18, 19], "orient": [0, 11], "tiling_direction_jax": 0, "discretis": [0, 1, 13], "real": [0, 13], "argument": 0, "over": [0, 11], "we": [0, 13, 14, 15, 16, 17, 18, 19], "name": [1, 5, 9, 12], "descript": [1, 5, 9], "spin_norm": 1, "normal": 1, "spin_normalization_vectoris": 1, "automat": 2, "document": [2, 12], "all": [2, 18], "function": [2, 4, 5, 13, 15, 16], "access": [2, 14], "through": [2, 14], "pip": [2, 15, 16, 17, 18, 19], "instal": [2, 15, 16, 17, 18], "packag": [2, 13, 14, 15, 16, 17, 18, 19], "below": 2, "an": [2, 12, 13, 15, 16, 17, 18, 19], "overview": 2, "directori": [2, 19], "structur": [2, 14], "softwar": [2, 13], "f": [3, 4, 6, 7, 8, 9, 11, 14, 15, 16, 17, 18, 19], "sampl": [3, 4, 6, 7, 8, 11, 15, 16, 17, 18], "str": [3, 4, 6, 7, 8, 11], "mw": [3, 4, 6, 7, 8, 11, 15, 16, 17], "nside": [3, 4, 6, 7, 8, 11], "none": [3, 4, 6, 7, 8, 11], "realiti": [3, 4, 6, 7, 8], "multiresolut": [3, 11, 13], "true": [3, 4, 6, 7, 8, 11, 14, 15, 16, 18], "scatter": [3, 11, 13], "pixel": [3, 5, 6, 7, 8, 9, 11, 13], "complex": [3, 6, 7, 8, 13], "signal": [3, 6, 7, 8, 13, 14, 15, 16, 17, 18], "n_": [3, 6, 7, 8, 11], "theta": [3, 6, 7, 8, 11], "phi": [3, 6, 7, 8, 11], "bandlimit": [3, 4, 6, 7, 8, 11, 15, 16, 17, 18], "input": [3, 6, 7, 8], "output": [3, 12], "spheric": [3, 4, 6, 7, 8, 11, 14, 15, 16, 17, 18], "scheme": [3, 4, 6, 7, 8, 11, 15, 16, 17], "mwss": [3, 4, 6, 7, 8, 11], "dh": [3, 4, 6, 7, 8, 11], "healpix": [3, 4, 6, 7, 8, 11], "resolut": [3, 4, 6, 7, 8, 11, 13], "onli": [3, 4, 5, 6, 7, 8, 11, 18, 19], "whether": [3, 4, 6, 7, 8, 11], "mathbb": [3, 4, 6, 7, 8], "r": [3, 4, 6, 7, 8, 19], "exploit": [3, 4, 6, 7, 8], "conjug": [3, 4, 6, 7, 8], "symmetri": [3, 4, 6, 7, 8], "store": [3, 11], "max": [3, 11], "its": [3, 11], "own": [3, 11], "If": [3, 11], "absolut": [3, 14, 15, 16, 17, 18], "2n": [3, 6, 7, 8, 11, 12], "f_scal": [3, 6, 7, 8, 9, 11, 14], "f_wav": [3, 6, 7, 8, 9, 11, 14], "analysis_loop": [3, 5], "synthesi": [3, 5, 6, 7, 8, 14, 15, 16], "synthesis": [3, 6, 7, 8], "omega": [3, 6, 7, 8], "sum": [3, 6, 7, 8], "contribut": [3, 6, 7, 8, 13], "see": [3, 6, 7, 8, 13], "27": [3, 6, 7, 8], "param": [3, 7, 8], "assertionerror": [3, 7, 8], "incorrect": [3, 7, 8], "synthesis_loop": [3, 5], "construct": [4, 13, 18], "generate_full_precomput": [4, 5, 18], "forward": [4, 18], "nospher": 4, "list": [4, 6, 7, 8, 9, 11], "associ": [4, 19], "underli": [4, 5, 13, 15], "wigner": [4, 5, 9, 11, 13, 14, 15, 16, 17, 18], "_description_": 4, "recurs": [4, 5, 7, 8, 18], "jnp": [4, 6, 7, 11], "generate_wigner_precomput": [4, 5], "loopi": 5, "map": [5, 13, 14], "flm_to_analysi": [5, 6, 7, 8], "fulli": 5, "filter": [6, 7, 8, 11, 13, 15, 16, 18], "precomp": [6, 7, 8, 18], "precomput": [6, 13, 18], "At": [6, 7, 8, 14], "most": [6, 7, 8, 19], "length": [6, 7, 8], "minim": [6, 7, 8, 11], "memori": [6, 7, 8, 11, 14], "overhead": [6, 7, 8], "flm": [6, 7, 8, 15, 16, 17, 18], "j_max": [6, 7, 8, 9, 11], "highest": [6, 7, 11], "wavelet_precomput": 7, "_precomp_shift": 7, "duplic": 7, "provid": [7, 13, 18, 19], "wavelet_precompute_torch": 8, "tensor": [8, 11, 18], "torch": [8, 11, 18], "l0_j": [9, 11], "minimum": [9, 11], "index": [9, 11, 12], "support": [9, 11, 13, 18], "n_wav_scal": [9, 11], "evalut": [9, 11], "maximum": [9, 11], "ensur": [9, 11, 19], "exact": [9, 11, 15, 16, 17, 18], "reconstruct": [9, 11], "ln_j": [9, 11], "scal_bandlimit": [9, 11], "harmominc": [9, 11], "wav_j_bandlimit": [9, 11], "f_wav_j": [9, 11], "flmn_wav_j": [9, 11], "construct_f": [9, 11], "correspond": [9, 11], "construct_flm": [9, 11], "construct_flmn": [9, 11], "flmn": [9, 11], "wavelet_shape_check": [9, 11], "correct": [9, 11], "consid": 11, "The": [11, 13, 19], "multipol": 11, "gl": 11, "binomial_coeffici": 11, "k": 11, "binomi": 11, "element": 11, "choos": 11, "pick": [11, 19], "possibl": 11, "subset": 11, "binomial_coefficient_jax": 11, "ext": 11, "creat": [11, 19], "optimis": [11, 13], "empti": 11, "write": 11, "data": [11, 15, 16, 17, 18], "construct_f_jax": 11, "construct_f_torch": 11, "2l": 11, "construct_flm_jax": 11, "construct_flmn_jax": 11, "construct_flmn_torch": 11, "each": 11, "compact": 11, "degre": 11, "therefor": 11, "conserv": 11, "inform": 11, "fraction": 11, "per": 11, "As": [11, 13], "differ": [11, 13], "overal": 11, "being": [11, 14, 19], "one": [11, 13, 19], "within": [11, 19], "needlet": [11, 13], "level": [11, 12, 14], "f_w": 11, "f_": 11, "check": [11, 15, 16, 17, 18], "correctli": 11, "cell": 12, "cell_typ": 12, "markdown": 12, "metadata": 12, "sourc": 12, "tutorialn": 12, "just": [12, 15, 16, 17, 18], "do": 12, "whatev": 12, "you": [12, 13, 15, 16, 19], "like": [12, 13], "notebook": [12, 15, 16, 17, 18, 19], "Then": 12, "add": [12, 14], "nblink": 12, "file": [12, 13], "doc": 12, "tutori": [12, 14, 19], "look": [12, 13], "execution_count": 12, "import": [12, 14, 15, 16, 17, 18, 19], "numpi": [12, 15, 16, 18], "random": [12, 15, 16, 17, 18], "randn": 12, "100": 12, "path": 12, "asset": 12, "static_notebook": 12, "template_notebook": 12, "ipynb": 12, "main": 12, "edit": 12, "top": 12, "rst": 12, "ad": [12, 13, 19], "toctre": 12, "hidden": 12, "maxdepth": 12, "caption": 12, "tutorialsn": 12, "kernelspec": 12, "display_nam": 12, "python": [12, 13, 19], "3": [12, 15, 16, 17, 18, 19], "languag": 12, "python3": 12, "language_info": 12, "codemirror_mod": 12, "ipython": 12, "file_extens": 12, "py": 12, "mimetyp": 12, "x": 12, "nbconvert_export": 12, "pygments_lex": 12, "ipython3": 12, "8": [12, 17], "12": 12, "nbformat": 12, "nbformat_minor": 12, "rotat": [13, 15, 16, 17, 18], "group": [13, 15, 16, 17, 18], "both": [13, 19], "pytorch": 13, "It": 13, "leverag": 13, "autodiff": 13, "also": [13, 14], "deploy": 13, "modern": 13, "hardwar": 13, "g": [13, 14], "gpu": [13, 14], "tpu": 13, "can": [13, 14, 15, 16, 17, 18, 19], "across": 13, "multipl": 13, "more": [13, 14, 19], "adjoint": 13, "come": [13, 19], "varieti": 13, "multi": 13, "algorithm": [13, 18], "mai": [13, 19], "select": 13, "depend": [13, 19], "avail": [13, 14], "resourc": 13, "angular": 13, "sister": 13, "s2fft": [13, 15, 16, 17, 18], "part": 13, "sax": 13, "project": [13, 19], "aim": 13, "comprehens": 13, "partial": 13, "futur": [13, 15, 16], "expand": 13, "full": 13, "releas": [13, 14, 19], "exist": [13, 14, 19], "librari": [13, 15], "ssht": [13, 14], "work": [13, 15, 16, 17, 18, 19], "wrap": 13, "bind": 13, "custom": 13, "current": [13, 18], "interoper": 13, "cpu": [13, 14], "updat": [13, 15, 16], "build": [13, 15, 16, 18, 19], "upon": 13, "leistedt": 13, "2017": 13, "design": 13, "have": [13, 19], "excel": 13, "localis": 13, "uncorrel": 13, "properti": 13, "successfulli": 13, "adopt": 13, "variou": 13, "applic": [13, 14], "2022": 13, "dictionari": 13, "line": 13, "straightforwardli": 13, "effici": [13, 14], "manner": 13, "euclidean": 13, "case": 13, "what": 13, "strongli": [13, 19], "encourag": 13, "ani": [13, 19], "interest": 13, "develop": 13, "simpl": [13, 14], "exampl": [13, 14, 15, 16, 17, 18], "would": 13, "new": 13, "chan": 13, "2016": 13, "ridgelet": 13, "price": 13, "2020": 13, "thank": 13, "goe": 13, "wonder": 13, "peopl": 13, "emojikei": 13, "matt": 13, "jason": 13, "alicja": 13, "polanska": 13, "jessica": 13, "whitnei": 13, "bibtex": 13, "entri": 13, "articl": 13, "author": 13, "matthew": 13, "titl": 13, "ball": 13, "year": 13, "2024": 13, "eprint": 13, "2402": 13, "01282": 13, "request": 13, "cite": 13, "journal": 13, "physic": 13, "submit": 13, "2023": 13, "2311": 13, "14670": 13, "core": [13, 18, 19], "copyright": 13, "whtinei": 13, "free": [13, 14], "made": 13, "under": 13, "mit": 13, "For": 13, "detail": 13, "seri": 14, "go": 14, "api": 14, "post": 14, "alpha": 14, "involv": [14, 18, 19], "time": 14, "feel": 14, "contact": 14, "contributor": 14, "advic": 14, "high": 14, "primari": [14, 19], "easili": 14, "To": [14, 19], "back": 14, "wrapper": 14, "though": 14, "nevertheless": 14, "veri": [14, 15, 16], "when": [14, 15, 16, 17, 18, 19], "call": [14, 15, 16, 18], "oper": 14, "mode": 14, "simpli": [14, 19], "run": [14, 15, 16, 17, 18, 19], "use_c_backend": [14, 15], "dev": [15, 16, 17, 18], "let": [15, 16, 17, 18], "start": [15, 16, 17, 18], "some": [15, 16, 17, 18], "ll": [15, 16, 17, 18], "make": [15, 16], "sure": [15, 16], "configur": [15, 16], "64": [15, 16, 18], "bit": [15, 16, 18, 19], "precis": [15, 16, 17, 18], "32": [15, 16], "faster": [15, 16, 18], "potenti": [15, 16], "much": [15, 16, 18], "less": [15, 16], "config": [15, 16], "jax_enable_x64": [15, 16], "now": [15, 16, 17, 18], "constraint": [15, 16, 17, 18], "problem": [15, 16, 17, 18], "switch": 15, "backend": 15, "rng": [15, 16, 17, 18], "default_rng": [15, 16, 17, 18], "12346161": [15, 16, 17, 18], "util": [15, 16, 17, 18], "signal_gener": [15, 16, 17, 18], "generate_flm": [15, 16, 17, 18], "invers": [15, 16, 17, 18], "bank": [15, 16, 18], "filter_bank": [15, 16, 18], "wavelet_coeff": [15, 16, 17, 18], "scaling_coeff": [15, 16, 17, 18], "pass": [15, 16], "slow": [15, 16, 18], "That": [15, 16], "becaus": [15, 16], "jit": [15, 16], "compil": [15, 16], "so": [15, 16, 18], "fater": [15, 16], "theorem": [15, 16, 17, 18], "chosen": [15, 16, 17, 18], "recov": [15, 16, 17, 18], "origin": [15, 16, 17, 18], "machin": [15, 16, 17, 18, 19], "f_check": [15, 16, 17, 18], "again": [15, 16, 18], "quit": [15, 16, 18], "should": [15, 16, 18, 19], "doubl": [15, 16, 17, 18], "actual": [15, 16, 17, 18], "got": [15, 16, 17, 18], "5": [15, 16, 17, 18], "print": [15, 16, 17, 18], "mean": [15, 16, 17, 18], "error": [15, 16, 17, 18], "nanmean": [15, 16, 17, 18], "ab": [15, 16, 17, 18], "1009715781712507e": 15, "14": [15, 16, 17, 18], "6": [16, 17], "7": [16, 18], "068390707329961e": 16, "analysis_bas": 17, "synthesis_bas": 17, "056856753687673e": 17, "up": [18, 19], "until": 18, "around": 18, "sim1024": 18, "fly": 18, "alreadi": 18, "reach": 18, "soon": 18, "program": 18, "ecosystem": 18, "dramat": 18, "affect": 18, "even": 18, "moder": 18, "convert": 18, "f_torch": 18, "from_numpi": 18, "cach": 18, "matric": 18, "analysis_matric": 18, "synthesis_matric": 18, "straightforwar": 18, "linear": 18, "algebra": 18, "analysis_precomp_torch": 18, "synthesis_precomp_torch": 18, "resolve_conj": 18, "0514116979479282e": 18, "There": 19, "two": 19, "wai": 19, "either": 19, "recent": 19, "benefit": 19, "abl": 19, "local": 19, "execut": 19, "unit": 19, "test": 19, "altern": 19, "directli": 19, "onlin": 19, "manag": 19, "simplest": 19, "after": 19, "outlin": 19, "collab": 19, "recommend": 19, "conda": 19, "environ": 19, "fresh": 19, "avoid": 19, "conflict": 19, "env_nam": 19, "9": 19, "activ": 19, "onc": 19, "clone": 19, "repositori": 19, "git": 19, "http": 19, "com": 19, "astro": 19, "informat": 19, "cd": 19, "root": 19, "success": 19, "txt": 19, "pytest": 19, "includ": 19, "jaxlib": 19, "howev": 19, "get": 19, "thing": 19, "guid": 19, "googl": 19, "summaris": 19, "driver": 19, "cuda": 19, "cudnn": 19, "pre": 19, "built": 19, "compat": 19, "wheel": 19, "shoulld": 19, "upgrad": 19, "linux": 19, "storag": 19, "googleapi": 19, "jax_cuda_releas": 19, "html": 19, "mani": 19, "architectur": 19, "cuda11_cudnn86": 19, "match": 19, "those": 19}, "objects": {"s2wav": [[0, 0, 0, "-", "filters"], [11, 0, 0, "-", "samples"]], "s2wav.filters": [[0, 1, 1, "", "filters_axisym"], [0, 1, 1, "", "filters_axisym_jax"], [0, 1, 1, "", "filters_axisym_vectorised"], [0, 1, 1, "", "filters_directional"], [0, 1, 1, "", "filters_directional_jax"], [0, 1, 1, "", "filters_directional_vectorised"], [0, 1, 1, "", "k_lam"], [0, 1, 1, "", "k_lam_jax"], [0, 1, 1, "", "part_scaling_fn"], [0, 1, 1, "", "tiling_direction"], [0, 1, 1, "", "tiling_direction_jax"], [0, 1, 1, "", "tiling_integrand"]], "s2wav.samples": [[11, 1, 1, "", "L0_j"], [11, 1, 1, "", "LN_j"], [11, 1, 1, "", "binomial_coefficient"], [11, 1, 1, "", "binomial_coefficient_jax"], [11, 1, 1, "", "construct_f"], [11, 1, 1, "", "construct_f_jax"], [11, 1, 1, "", "construct_f_torch"], [11, 1, 1, "", "construct_flm"], [11, 1, 1, "", "construct_flm_jax"], [11, 1, 1, "", "construct_flmn"], [11, 1, 1, "", "construct_flmn_jax"], [11, 1, 1, "", "construct_flmn_torch"], [11, 1, 1, "", "f_scal"], [11, 1, 1, "", "f_wav_j"], [11, 1, 1, "", "flmn_wav_j"], [11, 1, 1, "", "j_max"], [11, 1, 1, "", "n_wav_scales"], [11, 1, 1, "", "scal_bandlimit"], [11, 1, 1, "", "wav_j_bandlimit"], [11, 1, 1, "", "wavelet_shape_check"]], "s2wav.transforms": [[3, 0, 0, "-", "base"], [4, 0, 0, "-", "construct"], [6, 0, 0, "-", "wavelet"], [7, 0, 0, "-", "wavelet_precompute"], [8, 0, 0, "-", "wavelet_precompute_torch"]], "s2wav.transforms.base": [[3, 1, 1, "", "analysis"], [3, 1, 1, "", "analysis_looped"], [3, 1, 1, "", "synthesis"], [3, 1, 1, "", "synthesis_looped"]], "s2wav.transforms.construct": [[4, 1, 1, "", "generate_full_precomputes"], [4, 1, 1, "", "generate_wigner_precomputes"]], "s2wav.transforms.wavelet": [[6, 1, 1, "", "analysis"], [6, 1, 1, "", "flm_to_analysis"], [6, 1, 1, "", "synthesis"]], "s2wav.transforms.wavelet_precompute": [[7, 1, 1, "", "analysis"], [7, 1, 1, "", "flm_to_analysis"], [7, 1, 1, "", "synthesis"]], "s2wav.transforms.wavelet_precompute_torch": [[8, 1, 1, "", "analysis"], [8, 1, 1, "", "flm_to_analysis"], [8, 1, 1, "", "synthesis"]]}, "objtypes": {"0": "py:module", "1": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "titleterms": {"filter": [0, 1], "function": [0, 1, 9, 10, 11], "factori": 1, "gener": 1, "wavelet": [1, 5, 13, 15, 16, 17, 18], "kernel": 1, "tile": 1, "api": 2, "numpi": [3, 5, 17], "transform": [3, 5, 6, 7, 8, 13, 15, 16, 17, 18], "matric": [4, 5], "precomput": [4, 5, 7, 8], "jax": [5, 6, 7, 15, 16, 19], "pytorch": [5, 8, 18], "recurs": 6, "util": 9, "bandlimit": 9, "shape": [9, 11], "arrai": [9, 11], "construct": 9, "check": 9, "math": 10, "differenti": 13, "acceler": 13, "spheric": 13, "contributor": 13, "attribut": 13, "licens": 13, "notebook": 14, "core": 14, "usag": 14, "c": 14, "backend": 14, "librari": 14, "support": 14, "ssht": 15, "instal": 19, "quick": 19, "pypi": 19, "from": 19, "sourc": 19, "github": 19, "nvidia": 19, "gpu": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx": 60}, "alltitles": {"Filter functions": [[0, "module-s2wav.filters"]], "Filter Factory": [[1, "filter-factory"]], "Filter generators.": [[1, "id1"]], "Wavelet kernel functions.": [[1, "id2"]], "Wavelet tiling functions.": [[1, "id3"]], "API": [[2, "api"]], "Numpy Transforms": [[3, "module-s2wav.transforms.base"]], "Matrice Precomputes": [[4, "module-s2wav.transforms.construct"]], "Wavelet Transforms": [[5, "wavelet-transforms"]], "Numpy transforms": [[5, "id1"]], "JAX transforms": [[5, "id2"]], "PyTorch transforms": [[5, "id3"]], "Matrices precomputations": [[5, "id4"]], "JAX Transforms (Recursive)": [[6, "module-s2wav.transforms.wavelet"]], "JAX Transforms (Precompute)": [[7, "jax-transforms-precompute"]], "PyTorch Transforms (Precompute)": [[8, "pytorch-transforms-precompute"]], "Utility Functions": [[9, "utility-functions"]], "Bandlimiting functions.": [[9, "id1"]], "Shape functions.": [[9, "id2"]], "Array constructing and shape checking functions.": [[9, "id3"]], "Maths Functions": [[10, "maths-functions"]], "Array Shape Functions": [[11, "module-s2wav.samples"]], "Differentiable and accelerated spherical wavelets": [[13, "differentiable-and-accelerated-spherical-wavelets"]], "Wavelet Transform \u26a1": [[13, "wavelet-transform-zap"]], "Contributors \u2728": [[13, "contributors"]], "Attribution \ud83d\udcda": [[13, "attribution-books"]], "License \ud83d\udcdd": [[13, "license-memo"]], "Notebooks": [[14, "notebooks"]], "Core usage \ud83d\ude80": [[14, "core-usage-rocket"]], "C backend library support \ud83d\udca1": [[14, "c-backend-library-support-bulb"]], "Wavelet transform (JAX-SSHT)": [[15, "Wavelet-transform-(JAX-SSHT)"]], "Wavelet transform (JAX)": [[16, "Wavelet-transform-(JAX)"]], "Wavelet transform (Numpy)": [[17, "Wavelet-transform-(Numpy)"]], "Wavelet transform (PyTorch)": [[18, "Wavelet-transform-(PyTorch)"]], "Installation": [[19, "installation"]], "Quick install (PyPi)": [[19, "quick-install-pypi"]], "Install from source (GitHub)": [[19, "install-from-source-github"]], "Installing JAX for NVIDIA GPUs": [[19, "installing-jax-for-nvidia-gpus"]]}, "indexentries": {"filters_axisym() (in module s2wav.filters)": [[0, "s2wav.filters.filters_axisym"]], "filters_axisym_jax() (in module s2wav.filters)": [[0, "s2wav.filters.filters_axisym_jax"]], "filters_axisym_vectorised() (in module s2wav.filters)": [[0, "s2wav.filters.filters_axisym_vectorised"]], "filters_directional() (in module s2wav.filters)": [[0, "s2wav.filters.filters_directional"]], "filters_directional_jax() (in module s2wav.filters)": [[0, "s2wav.filters.filters_directional_jax"]], "filters_directional_vectorised() (in module s2wav.filters)": [[0, "s2wav.filters.filters_directional_vectorised"]], "k_lam() (in module s2wav.filters)": [[0, "s2wav.filters.k_lam"]], "k_lam_jax() (in module s2wav.filters)": [[0, "s2wav.filters.k_lam_jax"]], "module": [[0, "module-s2wav.filters"], [3, "module-s2wav.transforms.base"], [4, "module-s2wav.transforms.construct"], [6, "module-s2wav.transforms.wavelet"], [7, "module-s2wav.transforms.wavelet_precompute"], [8, "module-s2wav.transforms.wavelet_precompute_torch"], [11, "module-s2wav.samples"]], "part_scaling_fn() (in module s2wav.filters)": [[0, "s2wav.filters.part_scaling_fn"]], "s2wav.filters": [[0, "module-s2wav.filters"]], "tiling_direction() (in module s2wav.filters)": [[0, "s2wav.filters.tiling_direction"]], "tiling_direction_jax() (in module s2wav.filters)": [[0, "s2wav.filters.tiling_direction_jax"]], "tiling_integrand() (in module s2wav.filters)": [[0, "s2wav.filters.tiling_integrand"]], "analysis() (in module s2wav.transforms.base)": [[3, "s2wav.transforms.base.analysis"]], "analysis_looped() (in module s2wav.transforms.base)": [[3, "s2wav.transforms.base.analysis_looped"]], "s2wav.transforms.base": [[3, "module-s2wav.transforms.base"]], "synthesis() (in module s2wav.transforms.base)": [[3, "s2wav.transforms.base.synthesis"]], "synthesis_looped() (in module s2wav.transforms.base)": [[3, "s2wav.transforms.base.synthesis_looped"]], "generate_full_precomputes() (in module s2wav.transforms.construct)": [[4, "s2wav.transforms.construct.generate_full_precomputes"]], "generate_wigner_precomputes() (in module s2wav.transforms.construct)": [[4, "s2wav.transforms.construct.generate_wigner_precomputes"]], "s2wav.transforms.construct": [[4, "module-s2wav.transforms.construct"]], "analysis() (in module s2wav.transforms.wavelet)": [[6, "s2wav.transforms.wavelet.analysis"]], "flm_to_analysis() (in module s2wav.transforms.wavelet)": [[6, "s2wav.transforms.wavelet.flm_to_analysis"]], "s2wav.transforms.wavelet": [[6, "module-s2wav.transforms.wavelet"]], "synthesis() (in module s2wav.transforms.wavelet)": [[6, "s2wav.transforms.wavelet.synthesis"]], "analysis() (in module s2wav.transforms.wavelet_precompute)": [[7, "s2wav.transforms.wavelet_precompute.analysis"]], "flm_to_analysis() (in module s2wav.transforms.wavelet_precompute)": [[7, "s2wav.transforms.wavelet_precompute.flm_to_analysis"]], "s2wav.transforms.wavelet_precompute": [[7, "module-s2wav.transforms.wavelet_precompute"]], "synthesis() (in module s2wav.transforms.wavelet_precompute)": [[7, "s2wav.transforms.wavelet_precompute.synthesis"]], "analysis() (in module s2wav.transforms.wavelet_precompute_torch)": [[8, "s2wav.transforms.wavelet_precompute_torch.analysis"]], "flm_to_analysis() (in module s2wav.transforms.wavelet_precompute_torch)": [[8, "s2wav.transforms.wavelet_precompute_torch.flm_to_analysis"]], "s2wav.transforms.wavelet_precompute_torch": [[8, "module-s2wav.transforms.wavelet_precompute_torch"]], "synthesis() (in module s2wav.transforms.wavelet_precompute_torch)": [[8, "s2wav.transforms.wavelet_precompute_torch.synthesis"]], "l0_j() (in module s2wav.samples)": [[11, "s2wav.samples.L0_j"]], "ln_j() (in module s2wav.samples)": [[11, "s2wav.samples.LN_j"]], "binomial_coefficient() (in module s2wav.samples)": [[11, "s2wav.samples.binomial_coefficient"]], "binomial_coefficient_jax() (in module s2wav.samples)": [[11, "s2wav.samples.binomial_coefficient_jax"]], "construct_f() (in module s2wav.samples)": [[11, "s2wav.samples.construct_f"]], "construct_f_jax() (in module s2wav.samples)": [[11, "s2wav.samples.construct_f_jax"]], "construct_f_torch() (in module s2wav.samples)": [[11, "s2wav.samples.construct_f_torch"]], "construct_flm() (in module s2wav.samples)": [[11, "s2wav.samples.construct_flm"]], "construct_flm_jax() (in module s2wav.samples)": [[11, "s2wav.samples.construct_flm_jax"]], "construct_flmn() (in module s2wav.samples)": [[11, "s2wav.samples.construct_flmn"]], "construct_flmn_jax() (in module s2wav.samples)": [[11, "s2wav.samples.construct_flmn_jax"]], "construct_flmn_torch() (in module s2wav.samples)": [[11, "s2wav.samples.construct_flmn_torch"]], "f_scal() (in module s2wav.samples)": [[11, "s2wav.samples.f_scal"]], "f_wav_j() (in module s2wav.samples)": [[11, "s2wav.samples.f_wav_j"]], "flmn_wav_j() (in module s2wav.samples)": [[11, "s2wav.samples.flmn_wav_j"]], "j_max() (in module s2wav.samples)": [[11, "s2wav.samples.j_max"]], "n_wav_scales() (in module s2wav.samples)": [[11, "s2wav.samples.n_wav_scales"]], "s2wav.samples": [[11, "module-s2wav.samples"]], "scal_bandlimit() (in module s2wav.samples)": [[11, "s2wav.samples.scal_bandlimit"]], "wav_j_bandlimit() (in module s2wav.samples)": [[11, "s2wav.samples.wav_j_bandlimit"]], "wavelet_shape_check() (in module s2wav.samples)": [[11, "s2wav.samples.wavelet_shape_check"]]}})
\ No newline at end of file
diff --git a/tutorials/index.html b/tutorials/index.html
index 44a4e72..e32f530 100644
--- a/tutorials/index.html
+++ b/tutorials/index.html
@@ -8,7 +8,7 @@
- Notebooks — S2WAV 1.0.3 documentation
+ Notebooks — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -136,8 +136,8 @@
-
-
+
+
diff --git a/tutorials/jax_ssht_transform/jax_transforms.html b/tutorials/jax_ssht_transform/jax_transforms.html
index 519a36e..8e92ee6 100644
--- a/tutorials/jax_ssht_transform/jax_transforms.html
+++ b/tutorials/jax_ssht_transform/jax_transforms.html
@@ -8,7 +8,7 @@
- Wavelet transform (JAX-SSHT) — S2WAV 1.0.3 documentation
+ Wavelet transform (JAX-SSHT) — S2WAV 1.0.4 documentation
@@ -44,7 +44,7 @@
-
+
@@ -139,8 +139,8 @@
-
-
+
+
diff --git a/tutorials/jax_transform/jax_transforms.html b/tutorials/jax_transform/jax_transforms.html
index 64d5b93..117abb8 100644
--- a/tutorials/jax_transform/jax_transforms.html
+++ b/tutorials/jax_transform/jax_transforms.html
@@ -8,7 +8,7 @@
- Wavelet transform (JAX) — S2WAV 1.0.3 documentation
+ Wavelet transform (JAX) — S2WAV 1.0.4 documentation
@@ -44,7 +44,7 @@
-
+
@@ -139,8 +139,8 @@
-
-
+
+
diff --git a/tutorials/numpy_transform/numpy_transforms.html b/tutorials/numpy_transform/numpy_transforms.html
index a11d04c..0dba9b1 100644
--- a/tutorials/numpy_transform/numpy_transforms.html
+++ b/tutorials/numpy_transform/numpy_transforms.html
@@ -8,7 +8,7 @@
- Wavelet transform (Numpy) — S2WAV 1.0.3 documentation
+ Wavelet transform (Numpy) — S2WAV 1.0.4 documentation
@@ -44,7 +44,7 @@
-
+
@@ -139,8 +139,8 @@
-
-
+
+
diff --git a/tutorials/torch_transform/torch_transforms.html b/tutorials/torch_transform/torch_transforms.html
index aaca020..1abe4ae 100644
--- a/tutorials/torch_transform/torch_transforms.html
+++ b/tutorials/torch_transform/torch_transforms.html
@@ -8,7 +8,7 @@
- Wavelet transform (PyTorch) — S2WAV 1.0.3 documentation
+ Wavelet transform (PyTorch) — S2WAV 1.0.4 documentation
@@ -44,7 +44,7 @@
-
+
@@ -139,8 +139,8 @@
-
-
+
+
diff --git a/user_guide/install.html b/user_guide/install.html
index dcb4158..f1f13cf 100644
--- a/user_guide/install.html
+++ b/user_guide/install.html
@@ -8,7 +8,7 @@
- Installation — S2WAV 1.0.3 documentation
+ Installation — S2WAV 1.0.4 documentation
@@ -43,7 +43,7 @@
-
+
@@ -136,8 +136,8 @@
-
-
+
+