Skip to content

Stable recursive transforms for high azimuthal band limits #227

@CosmoMatt

Description

@CosmoMatt

@ElisR picking up our previous discussion here.

Problem

It seems that you would like to efficiently evaluate the inverse Wigner transforms for L = N = 64? Are you interested in pushing this to higher L or is 64 sufficient? Currently the underlying recursion runs into stability issues for azimuthal band limits (N) greater than ~8, depending on L. Not clear precisely why, and for many use-cases this is acceptable, so we put priority on other projects. In any case, good to pick this up now!

Background

As you suggested, retrofitting a more stable Wigner recursion for high N use-cases is the way to go. I've already implemented a JAX version of the Risbo recursion (code, paper). @jasonmcewen and I have used this recursion in previous work (e.g. paper) we have used this and found it is far more stable as N increases. Combining this recursion with the Fourier decomposition of Wigner D-functions presented by Trapani & Navaza (e.g. paper) we designed efficient FFT based implementations for the spin-spherical harmonic (paper equations 9-14) and Wigner transforms (paper section III).

Solution (Small L <= 64)

For your exact use case L = N = 64 is low enough that it should be possible to precompute all the necessary Wigner d-functions, which will then be much faster at run-time. This can be done at high N in a stable manner by using the Risbo recursion and following equation 8 of this paper. What we'll need to do is:

  • Switch out the recursion used to precompute the Wigner d-functions (this section in the code)

This will make the precompute take somewhat longer, but the memory complexity should remain the same $\mathcal{O}(NL^3)$ and the speed at run-time should be unaffected. We can reduce the memory complexity to $\mathcal{O}(L^3)$, which would be really good for your use case, but this will reduce the speed a little at runtime. In any case, I'll implement both versions so you can choose. What we'll need to do is:

  • Create alternate precompute transform which stores only $\Delta^{\ell}_{mn}$ and evaluates the necessary Wigner d-functions at run-time through equation 8 of this paper, i.e.
image

Solution (Large L > 64)

We already have the core recursion necessary to solve the problem. What we'll need to do is:

  • Wrap the Risbo recursion into a forward and inverse spin-spherical harmonic transform.
  • Wrap the spin-spherical harmonic transforms into Risbo based Wigner transforms.

I'll also need to check that memory/time complexity plays well for gradient propagation.

Metadata

Metadata

Assignees

Labels

criticalSomething is time sensitiveenhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions