its necessary, the first two NPY_FLOAT in the signature array is not npy_sqrtf anymore but FLOAT_add, due to the specializations, so they need to be skipped.
I'll document it better, maybe it can also be avoided by changing the order in generate_umath.py, I'll try.

The whole approach here seems very fragile, it took me a while to figure out that I need to add this offset here.