numba_extras

Extensions to numba

xarray_extras.numba_extras.guvectorize(signature: str, layout: str, **kwargs: Any) Callable[[Callable], Any]

Convenience wrapper around numba.guvectorize(). Generate signature for all possible data types and set a few healthy defaults.

Parameters:
  • signature (str) – numba signature, containing {T}

  • layout (str) – as in numba.guvectorize()

  • kwargs – passed verbatim to numba.guvectorize(). This function changes the default for cache from False to True.

example:

guvectorize("{T}[:], {T}[:]", "(i)->(i)")

Is the same as:

numba.guvectorize([
    "float32[:], float32[:]",
    "float64[:], float64[:]",
    ...
], "(i)->(i)", cache=True)

Note

Discussing upstream fix; see https://github.com/numba/numba/issues/2936.