Section evaluation#
Evaluation of lifted convolutions on a section of the bundle (Sec. VII A).
Anisotropic constructions that keep the output of a directional kernel on the sphere evaluate a lifted convolution on a section \(\sigma(x) = s(x) R_z(\chi_\sigma(x))\). For a kernel whose column \(k = -s\) is supported on \(|n| < N\), this is a sum of spin components in the frame of the section (Proposition VII.1, Eq. 62):
The output is not a band-limited field on the sphere in general; the functions below return its exact values on a sampling grid. Such operators are equivariant under polar rotations for the coordinate section, but not under all rotations in general.
- s2conv.convolutions.section.section_components(flm, kernel, s_in: int, N: int) Array[source]#
Spin components \((2\pi)^{-1/2}\mathcal{C}_{s\to s'}[\Psi]\, {}_sf\), \(|s'| < N\), of a section evaluation.
- Parameters:
flm – Spin-\(s\) harmonic coefficients,
[..., L, 2L - 1].kernel – The kernel,
[2N_k - 1, L, 2L - 1].s_in (int) – Input spin \(s\).
N (int) – Bound on the output spins, \(|s'| < N\).
- Returns:
Harmonic coefficients
[..., 2N - 1, L, 2L - 1], indexed[..., N - 1 + s', el, L - 1 + m].- Return type:
jnp.ndarray
- s2conv.convolutions.section.section_evaluation(flm, kernel, s_in: int, N: int, chi=None, sampling: str = 'mw', method: str = 'jax') Array[source]#
Evaluation of \(\Psi \star \Lambda_s f\) on a section, \(E_\sigma[\Psi]\, {}_sf\) (Proposition VII.1).
- Parameters:
flm – Spin-\(s\) harmonic coefficients,
[L, 2L - 1].kernel – The kernel,
[2N_k - 1, L, 2L - 1].s_in (int) – Input spin \(s\).
N (int) – Bound on the output spins, \(|s'| < N\); the kernel’s column \(k = -s\) must vanish for \(|n| \ge N\) for the evaluation to be exact.
chi (optional) – The section twist \(\chi_\sigma\): None for the coordinate section, a constant, an array on the sampling grid, or a function
chi(theta, phi)evaluated on an equiangular grid.sampling (str, optional) – Sampling scheme. Defaults to “mw”.
method (str, optional) – Transform backend. Defaults to “jax”.
- Returns:
Samples of the (scalar, coordinate-frame) output on the sampling grid.
- Return type:
jnp.ndarray
- s2conv.convolutions.section.standard_correlation(flm, psi_lm, N: int, sampling: str = 'mw', method: str = 'jax')[source]#
Standard correlation \((f \circledast \psi)(R_\omega) = \langle f, \mathcal{R}_{(\varphi, \theta, 0)}\psi\rangle\) (Definition III.7).
The directional convolution evaluated on the coordinate section, \(E_{\sigma_0}[\Lambda_0\psi]\) (Proposition VII.1). It is equivariant under polar rotations, but not under all rotations unless the kernel is axisymmetric.
- Parameters:
flm – Scalar harmonic coefficients,
[L, 2L - 1].psi_lm – Scalar harmonic coefficients of the directional kernel,
[L, 2L - 1].N (int) – Azimuthal band-limit of the kernel, \(\psi_{\ell m} = 0\) for \(|m| \ge N\); the output spins are \(|s'| < N\).
sampling (str, optional) – Sampling scheme. Defaults to “mw”.
method (str, optional) – Transform backend. Defaults to “jax”.
- Returns:
Samples of the output on the sampling grid.
- Return type:
jnp.ndarray
- s2conv.convolutions.section.commutative_anisotropic_convolution(flm, h_lm, N: int, sampling: str = 'mw', method: str = 'jax')[source]#
Commutative anisotropic convolution of Sadeghi et al., \((h \odot_{\mathrm{S}} f)(\theta, \varphi) = \int (\mathcal{R}_{(\varphi,\theta,\pi-\varphi)} h)\, f\, \mathrm{d}\mu\) (Definition III.8).
A bilinear pairing evaluated on the section \(\chi_\sigma = \pi - \varphi\), i.e. \(E_\sigma[\Lambda_0 h^*]\, f\) (Proposition VII.1). It is commutative, but not equivariant under all rotations in general; a polar rotation \(R_z(a)\) is a symmetry exactly when \(e^{\mathrm{i}ta} = 1\) for every active output spin \(t\).
- Parameters:
flm – Scalar harmonic coefficients,
[L, 2L - 1].h_lm – Scalar harmonic coefficients of the kernel,
[L, 2L - 1].N (int) – Azimuthal band-limit of the kernel, \(h_{\ell m} = 0\) for \(|m| \ge N\).
sampling (str, optional) – Equiangular sampling scheme. Defaults to “mw”.
method (str, optional) – Transform backend. Defaults to “jax”.
- Returns:
Samples of the output on the sampling grid.
- Return type:
jnp.ndarray
- s2conv.convolutions.section.standard_correlation_fourier(flm, psi_lm) Array[source]#
Standard correlation as a finite Fourier series, the \(\mathcal{O}(L^3)\) algorithm of App. B 8.
With \(\Delta^\ell = d^\ell(\pi/2)\), \(G^{\ell}_k = \sum_n \mathrm{i}^{-n} \Delta^{\ell}_{kn} \psi^*_{\ell n}\) and \(H_{mk} = \sum_\ell \mathrm{i}^m \Delta^{\ell}_{km} f_{\ell m} G^{\ell}_k\) (Eq. B26), the standard correlation is \(\sum_{m,k} H_{mk}\, e^{\mathrm{i}m\varphi - \mathrm{i}k\theta}\) (Eq. B27), which
s2conv.utils.evaluation.evaluate_fourier()evaluates at any points.- Parameters:
flm – Scalar harmonic coefficients,
[..., L, 2L - 1].psi_lm – Scalar harmonic coefficients of the kernel,
[L, 2L - 1].
- Returns:
\(H_{mk}\),
[..., 2L - 1, 2L - 1].- Return type:
jnp.ndarray