-
Notifications
You must be signed in to change notification settings - Fork 14
Description
@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
- 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.
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.