Numba jit给出AssertionError,TypingError和LoweringError

时间:2018-11-29 03:20:05

标签: python

我正在使用以下代码查看在对角线从-2-2i到2 + 2i的复数正方形中的值是否在函数z ^ -2 + c中递归调用时是否创建周期结果,其中c是当前值被检查

    c = -2-2j
    max_iters = 200


    @jit(nopyhton=True)
    def f(z): return z**-2 + c

    @jit(nopython=False)
    def period_cnt(c, max_iters):
        z = c
        value = 0
        while value < max_iters and z.real**2 + z.imag**2 != 0:
           value = value + 1
           values.append(z)
           z = f(z, c)    
           for i in range(len(values)):
             test = values[i]
             cnt = 0
             for j in range(len(values) - i - 1):
                 cnt = cnt + 1
                 if test == values[j + (i + 1)]:
                     return cnt
     return cnt

 period_cnt(c, max_iters)

但我收到此错误:

  

AssertionError Traceback(最近的呼叫   持续)   〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numba \ errors.py   在new_error_context(fmt_,* args,** kwargs)中       258尝试:   -> 259产量       260除了NumbaError为e:

     

〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numba \ lowering.py   在lower_block(自身,块)中       215 loc = self.loc,errcls_ = defaulterrcls):   -> 216 self.lower_inst(inst)       217

     

〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numba \ objmode.py   在lower_inst(自我,inst)中        64如果isinstance(inst,ir.Assign):   ---> 65值= self.lower_assign(inst)        66 self.storevar(value,inst.target.name)

     

〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numba \ objmode.py   在lower_assign(自己,实例)中       158 elif isinstance(value,ir.Expr):   -> 159 return self.lower_expr(value)       160 Elif isinstance(value,ir.Global):

     

〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numba \ objmode.py   在lower_expr(self,expr)中       241 elif expr.op =='通话':   -> 242 argvals = [expr.args中a的self.loadvar(a.name)]       243 fn = self.loadvar(expr.func.name)

     

〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numba \ objmode.py   在(.0)中       241 elif expr.op =='通话':   -> 242 argvals = [expr.args中a的self.loadvar(a.name)]       243 fn = self.loadvar(expr.func.name)

     

〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ numba \ objmode.py   在loadvar中(自己,名字)       519#如果出现这种情况,那么实时变量分析是错误的   -> 520在self._live_vars中声明名称,名称       521 ptr = self.varmap [name]

     

AssertionError:cnt

然后它说这导致LoweringError:

  

LoweringError:在对象(对象模式前端)失败,在   对象(对象模式后端)cnt

任何建议都会很好。非常感谢。

0 个答案:

没有答案