This seems to work:
def factory(H,p,phi,w1=1,w2=1e5, n=10):
H_njit=njit(H)
@numba.njit
def f(w,p, phi):
return np.angle(H_njit(1j*w,p)) + phi/180.0*np.pi
for i in range(n):
out = brentq(f,w1,w2,(p,phi))
return out
factory(H,p,80)
There is a lot of overhead in a single call which due to the local use of njit. This is what I am running the brentq multiple times for timing.
%timeit factory(H,p,80,n=1)
10 loops, best of 3: 110 ms per loop
%timeit factory(H,p,80,n=10)
10 loops, best of 3: 111 ms per loop
%timeit factory(H,p,80,n=100)
10 loops, best of 3: 112 ms per loop
%timeit factory(H,p,80,n=1000)
10 loops, best of 3: 122 ms per loop
Kevin
--
You received this message because you are subscribed to the Google Groups "Numba Public Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to numba-users...@continuum.io.
To post to this group, send email to numba...@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/numba-users/CAOo6sON27_GG-W5utAWpywB%2BkAjcdiLFkm6t9WE1wjosKnrgig%40mail.gmail.com.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.
To unsubscribe from this group and stop receiving emails from it, send an email to numba-users+unsubscribe@continuum.io.
To post to this group, send email to numba...@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/numba-users/CAOo6sON27_GG-W5utAWpywB%2BkAjcdiLFkm6t9WE1wjosKnrgig%40mail.gmail.com.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.
--
You received this message because you are subscribed to the Google Groups "Numba Public Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to numba-users+unsubscribe@continuum.io.
To post to this group, send email to numba...@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/numba-users/58e7ce6f.c43a1c0a.e8291.a435%40mx.google.com.