Производительность вложенного цикла в Numba

По соображениям производительности я начал использовать Numba помимо NumPy. Мой алгоритм Numba работает, но я чувствую, что он должен быть быстрее. Есть один момент, который замедляет его. Вот фрагмент кода:

@nb.njit
def rfunc1(ws, a, l):
    gn = a**l
    for x1 in range(gn):
        for x2 in range(gn):
            for x3 in range(gn):
                y = 0.0
                for i in range(1, l):
                    if numpy.all(ws[x1][0:i] == ws[x2][0:i]) and
                    numpy.all(ws[x1][i:l] == ws[x3][i:l]):
                        y += 1
                    if numpy.all(ws[x1][0:i] == ws[x2][0:i]) and 
                    numpy.all(ws[x1][i:l] == ws[x3][i:l]):
                        y += 1

По моему мнениюif Команда замедляет его. Есть ли способ лучше? (То, чего я пытаюсь достичь, связано с ранее опубликованной проблемой:Подсчет возможностей для одиночных кроссоверов) ws размер массива NumPy(gn, l) содержащий0и1«s

Ответы на вопрос(2)

Ваш ответ на вопрос