SHTs are not unitary transforms
Currently, SHTs are part of Nifty's FFT operator class, which states (via a property) that its transforms are unitary.
However this is not true for SHTs: their matrix representation is not generally square. As a consequence, the SHT operator is not invertible.
So, on the FFT side we have:
- forward transform
- backward transform (which is the inverse, and simultaneously the adjoint of forward)
whereas for SHTs we have:
- alm2map (this can be implemented accurately)
- adjoint alm2map (also accurate)
The inverse alm2map operation ("map2alm") is currently "faked" by a weighted adjoint alm2map, but this only works in specific situations (if the map is band-limited), and in the case of Healpix only approximately.
I'm not sure if this has any significant consequences for the usage of SHTs in Nifty, but we should probably think about separating them from FFTs, to avoid confusion and potentially incorrect application of the SHT operators.
We should make it clear that SHTs can only be used in situations where only the transform from position space to harmonic space and its adjoint are required, but not its inverse.