Classical convolutions#
The rotation-equivariant spherical convolutions of the literature (Secs. III and VI).
Each is a generalised lifted convolution with a particular kernel (Table II), and is written here in its closed harmonic form, with the constants of the article:
Convolution |
Lifted form |
Harmonic form |
|---|---|---|
axisymmetric (Defs III.1, III.6) |
\((2\pi)^{-1/2}\mathcal{C}_{s\to0}[\Lambda_s\psi]\) |
\(\sqrt{4\pi/(2\ell+1)}\, {}_sf_{\ell m}\, {}_s\psi^*_{\ell0}\) |
left (Def. III.2) |
\(\mathcal{C}_{0\to0}[\Psi_h]\) |
\(2\pi\sqrt{4\pi/(2\ell+1)}\, f_{\ell m} h_{\ell0}\) |
directional (Defs III.3, III.5) |
\(\mathcal{C}_{s\to G}[\Lambda_s\psi]\) |
\(\frac{8\pi^2}{2\ell+1}\, {}_sf_{\ell m}\, {}_s\psi^*_{\ell n}\) |
synthesis (Def. III.10) |
\(\mathcal{C}_{G\to s}[\widetilde{\Lambda_s\psi}]\) |
\(\sum_n W^{\ell}_{mn}\, {}_s\psi_{\ell n}\) |
spin-changing (Prop. VI.5) |
\(\mathcal{C}_{s\to s'}[\Psi_T]\) |
\(c_\ell\, {}_sf_{\ell m}\) |
The group convolution (Definition III.4) is s2conv.convolutions.lifted.group_convolution().
All functions act on harmonic coefficients in the s2fft layout, broadcast over leading
axes, and are differentiable and JIT compilable.
- s2conv.convolutions.classical.axisymmetric_convolution(flm, psi_lm, spin: int = 0) Array[source]#
Axisymmetric convolution \((f \odot \psi)(\omega) = \langle f, \mathcal{R}_\omega \psi \rangle\).
For a scalar field (Definition III.1) or a spin-\(s\) field (Definition III.6) with an axisymmetric kernel, the output is a scalar field with \((f \odot \psi)_{\ell m} = \sqrt{4\pi/(2\ell+1)}\, {}_sf_{\ell m}\, {}_s\psi^*_{\ell 0}\) (Eqs. 14, 25). It is \((2\pi)^{-1/2}\mathcal{C}_{s\to0}[\Lambda_s\psi]\), the factor being the difference between evaluation on the section and the adjoint projection (Proposition VI.3). Only the axisymmetric part \(\psi_{\ell0}\) of the kernel enters.
- Parameters:
flm – Spin-\(s\) harmonic coefficients,
[..., L, 2L - 1].psi_lm – Spin-\(s\) harmonic coefficients of the kernel,
[L, 2L - 1].spin (int, optional) – Spin \(s\). Defaults to 0.
- Returns:
Scalar harmonic coefficients,
[..., L, 2L - 1].- Return type:
jnp.ndarray
- s2conv.convolutions.classical.left_convolution(flm, h_lm) Array[source]#
Left convolution of Driscoll & Healy, \((f \star_{\mathrm{L}} h)(\omega) = \int f(\rho\eta)\, h(R_\rho^{-1}\omega)\, \mathrm{d}\mu(\rho)\).
Its harmonic form is \(2\pi\sqrt{4\pi/(2\ell+1)}\, f_{\ell m} h_{\ell 0}\) (Definition III.2, Eq. 16): only the zonal part of the kernel enters, and the \(2\pi\) is the volume of the fibre. It is \(\mathcal{C}_{0\to0}[\Psi_h]\) with \(\Psi_h(g) = h^*(g^{-1}\eta)\), exactly (Proposition VI.4).
- Parameters:
flm – Scalar harmonic coefficients,
[..., L, 2L - 1].h_lm – Scalar harmonic coefficients of the kernel,
[L, 2L - 1].
- Returns:
Scalar harmonic coefficients,
[..., L, 2L - 1].- Return type:
jnp.ndarray
- s2conv.convolutions.classical.directional_convolution(flm, psi_lm, spin: int = 0, N: int = None) Array[source]#
Directional convolution \((f \circledast \psi)(\rho) = \langle f, \mathcal{R}_\rho\psi\rangle\), a function on the rotation group.
For scalar (Definition III.3) or spin-\(s\) fields (Definition III.5) its Wigner coefficients are \(\frac{8\pi^2}{2\ell+1}\, {}_sf_{\ell m}\, {}_s\psi^*_{\ell n}\) (Eqs. 18, 23). It is \(\mathcal{C}_{s\to G}[\Lambda_s\psi]\), exactly, with no residual constant (Proposition VI.1). For a steerable kernel, azimuthally band-limited at \(N\), the output is the tuple of \(2N - 1\) spin-changing convolutions of Proposition VI.6 (see
s2conv.lifting.spin_components()).- Parameters:
flm – Spin-\(s\) harmonic coefficients,
[..., L, 2L - 1].psi_lm – Spin-\(s\) harmonic coefficients of the kernel,
[L, 2L - 1].spin (int, optional) – Spin \(s\). Defaults to 0.
N (int, optional) – Azimuthal band-limit of the output, retaining the kernel’s orders \(|n| < N\). Defaults to \(L\), which is exact for any kernel.
- Returns:
Wigner coefficients,
[..., 2N - 1, L, 2L - 1].- Return type:
jnp.ndarray
- s2conv.convolutions.classical.directional_synthesis(flmn, psi_lm, spin: int = 0) Array[source]#
Haar synthesis \((W \circledast^\dagger \psi)(\omega) = \int W(\rho)\, (\mathcal{R}_\rho\psi)(\omega)\, \mathrm{d}\mu(\rho)\).
Its harmonic form is \(\sum_n W^{\ell}_{mn}\, {}_s\psi_{\ell n}\) (Definition III.10, Eq. 31). It is \(\mathcal{C}_{G\to s}[\widetilde{\Lambda_s\psi}]\), the adjoint of the directional convolution with the same kernel (Proposition VI.2).
- Parameters:
flmn – Wigner coefficients,
[..., 2N - 1, L, 2L - 1].psi_lm – Spin-\(s\) harmonic coefficients of the kernel,
[L, 2L - 1].spin (int, optional) – Spin \(s\) of the output. Defaults to 0.
- Returns:
Spin-\(s\) harmonic coefficients,
[..., L, 2L - 1].- Return type:
jnp.ndarray
- s2conv.convolutions.classical.axisymmetric_synthesis(flm, psi_lm, spin: int = 0) Array[source]#
Axisymmetric synthesis \(\int W(\omega')\, (\mathcal{R}_{\omega'}\psi)(\omega)\, \mathrm{d}\mu(\omega')\).
The adjoint of
axisymmetric_convolution(), mapping a scalar field to a spin-\(s\) field, \(\sqrt{4\pi/(2\ell+1)}\, W_{\ell m}\, {}_s\psi_{\ell 0}\): the first term of the spin wavelet synthesis (Eq. 26).- Parameters:
flm – Scalar harmonic coefficients,
[..., L, 2L - 1].psi_lm – Spin-\(s\) harmonic coefficients of the kernel,
[L, 2L - 1].spin (int, optional) – Spin \(s\) of the output. Defaults to 0.
- Returns:
Spin-\(s\) harmonic coefficients,
[..., L, 2L - 1].- Return type:
jnp.ndarray
- s2conv.convolutions.classical.spin_changing_convolution(flm, c, s_in: int, s_out: int) Array#
Spin-changing convolution with multiplier \(c_\ell\) (Proposition VI.5); see
s2conv.convolutions.lifted.spin_multiplier().