cdef int bs_contains_nogil(float_or_int[:] l,float_or_int t,int size) nogil:
cdef int low=0
cdef int high=size-1
cdef int mid=0
while(low<=high):
mid=(low+high)//2
if t==l[mid]:
return mid
elif t < l[mid]:
high=mid-1
else:
low=mid+1
return -(low+1)
@boundscheck(False)
@wraparound(False)
def insertplace_nogil(l,t):
idx=(<object (*)(int[:],int,int)>bs_contains_nogil)(l,t,len(l))
return idx //return the target position
上記のコードは私にエラー(タイプは特化していません)を与えてくれていますが、いずれにしてもこの問題をスローする方法はわかります。Cython融合はキャスティングできません。
どのようなエラーが表示されますか?また、 'idx'の値を設定した行全体が狂っています。あなたは何をしようとしているのですか?私たちはそれを単純化する可能性が非常に高いです。 –
申し訳ありませんが、コードの明確さのために、私は配列の目標位置を返す、ありがとう。 – user3035661