У меня есть две эти функции в коде Python. Python, которые вызываются случайным образом с течением времени:
cdef double dirac(self,Py_ssize_t i)nogil:
cdef Py_ssize_t index
with gil:
if i in self.muId:
index = self.muId.index(i)
if self.muSpk[index] <= self.time[self.tInt]:
self.muId.pop(index)
self.muSpk.pop(index)
return 1/self.dt
else:
return 0
else:
return 0
def addSpike(self,Py_ssize_t muId,double delay):
self.muId.append(muId)
self.muSpk.append(self.time[self.tInt] + delay)
if self.LR < muId:
self.LR = muId
Они являются частью одного и того же класса, и их переменные предварительно определены.
Я пытаюсь выработать более эффективный подход к этому, но у меня нет идей. Я искал очереди приоритетов C ++ или CPython подход API, но мне не хватает опыта для его реализации.
Есть предложения?