I'm trying to call a @guvectorize inside a @guvectorize but I have an error saying :
Untyped global name 'regNL_nb': cannot determine Numba type of <class 'numpy.ufunc'>
File "di.py", line 12:
def H2Delay_nb(S1, S2, R2):
H1 = regNL_nb(S1, S2)
^
here is an MRE:
import numpy as np
from numba import guvectorize, float64, int64, njit, cuda, jit
@guvectorize(["float64[:], float64[:], float64[:]"], '(n),(n)->(n)')
def regNL_nb(S1, S2, h2):
for i in range(len(S1)):
h2[i] = S1[i] + S2[i]
@guvectorize(["float64[:], float64[:], float64[:]"], '(n),(n)->(n)',nopython=True)
def H2Delay_nb(S1, S2, R2):
H1 = regNL_nb(S1, S2)
H2 = regNL_nb(S1, S2,)
for i in range(len(S1)):
R2[i] = H1[i] + H2[i]
S1 = np.array([1,2,3,4,5,6,7,8,9])
S2 = np.array([1,2,3,4,5,6,7,8,9])
H2 = H2Delay_nb(S1, S2)
print(H2)
I don't know how do I tell to numba that the function regNL_nb is a guvectorize function.
from How call a `@guvectorize` inside a `@guvectorize` in numba?
No comments:
Post a Comment