Я пытаюсь скомпилировать свой код на Python с помощью компилятора jit из numba. Тем не менее, я продолжаю получать ошибку «модуль», которую нельзя вызывать. Как правильно назвать этот декоратор? Сначала я устанавливаю numba, а затем импортирую его как jit. См. код ниже.
!conda install -y numba
import numba as jit
@jit(nopython=True)
def calltree_explicit(S0, K, T, r, sigma, delta, N):
deltaT = T/float(N)
u = np.exp(sigma * np.sqrt(deltaT))
d = 1/u
p = (np.exp((r-delta)*deltaT) - d)/(u-d)
pstar = np.exp(-(r-delta)*deltaT)*p*u
a = np.ceil(N/2+np.log(K/S0)/(2*np.log(u)))
return np.exp(-delta*T)*S0*binom.sf(a-1, N, pstar)-binom.sf(a-1, N,
p)*np.exp(-r*T)*K
Это должно скомпилировать мой код, чтобы сделать его быстрее
Но я получаю
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-31-3cc5b3c83b9f> in <module>()
----> 1 @jit(nopython=True)
2 def calltree_explicit(S0, K, T, r, sigma, delta, N):
3 deltaT = T/float(N)
4 u = np.exp(sigma * np.sqrt(deltaT))
5 d = 1/u
TypeError: 'module' object is not callable