This pull request implements a new version of the pgh function for gausshermite objects. This version of pgh is itself jit-compiled with numba, which in turn calls custom numba versions of scipy.erf and scipy.hermitenorm (because numba presently does not support scipy). This numba-ized version of pgh results in a 24 percent speedup on Haswell and a 33 percent speedup on KNL for desi_extract_spectra.
It should be noted that the addition of the custom erf function results in the introduction of a small amount of machine-precision numerical error. The sensitivity of some of the linear algebra functions to this error may need to be investigated in further detail.
This pull request implements a new version of the pgh function for gausshermite objects. This version of pgh is itself jit-compiled with numba, which in turn calls custom numba versions of scipy.erf and scipy.hermitenorm (because numba presently does not support scipy). This numba-ized version of pgh results in a 24 percent speedup on Haswell and a 33 percent speedup on KNL for desi_extract_spectra.
It should be noted that the addition of the custom erf function results in the introduction of a small amount of machine-precision numerical error. The sensitivity of some of the linear algebra functions to this error may need to be investigated in further detail.