我一直在做一个涉及复数计算的程序,我使用的三个函数是:import turtle
import cmath
import numpy as np
from numba import jit
@jit
def quadratics(arange=[0,10],brange=[0,100],crange=[0,100], step=2):
l = []
for a in range(arange[0],arange[1]+1,step):
for b in range(brange[0],brange[1]+1,step):
for c in range(crange[0],crange[1]+1,step):
if a != 0:
l.append((-b+cmath.sqrt(b**2-4*a*c))/(2*a))
l.append((-b-cmath.sqrt(b**2-4*a*c))/(2*a))
return l
def mindistance(point, roots):
return min(np.array([(point.real-i.real)**2+(point.imag-i.imag)**2 for i in roots]))
@jit
def drawing_matrix(imsz=500,xrange=[-5,5],yrange=[-5,5],poly=2,acc=0.01):
l = np.zeros((imsz, imsz))
roots = quadratics()
for x in range(0, imsz):
for y in range(0, imsz):
c = complex((x/imsz)*(xrange[1]-xrange[0])+xrange[0],(y/imsz)*(yrange[1]-yrange[0])+yrange[0])
if mindistance(c, roots) <= acc:
l[x,y] = 1
return l
现在,我一直在使用Numba来加速@jit修饰符,除了mindistance(),它还可以。如果我将@jit修饰符放在该函数上(这将非常有用,因为它在程序运行期间被调用了数千次),它将生成以以下结尾的最全面的错误消息:
^{pr2}$
这是第19行(如def mindistance())。你能告诉我为什么麻巴不喜欢这个功能吗?在