У меня возникли проблемы с numba при попытке запустить мой собственный код (перемещение за пределы примеров учебников). Кажется, что функция power не обрабатывается компилятором правильно, и я получаю мусор (все). Истинные результаты являются суммами р-серия, и должны дать:проблема с numba и функцией pow
2 1.64493306685
3 1.20205690315
4 1.08232323371
Если вместо степенной функции я использую что-то глупое, как разделение, я получаю ожидаемый результаты, так что проблема с конкретной функцией ПР , Вместо этого пробовал использовать функцию мощности numpy, такое же странное поведение.
from numba import autojit
from numpy import power as npow
N=1000000
def psum(p):
pval = 0.0
for ix in xrange(1,N):
pval+=pow(ix,-p)
return pval
nsum = autojit()(psum)
for p in range(2,5):
print p, nsum(p)
Прежде чем кричать на мой код для не достаточно вещий, я знаю, что Psum может быть записана в виде однострочника: возвращенной суммы ([мощн (IX, -p) для IX в xrange (1 , N)])
, но кто-то еще указал, что numba не обрабатывает функции со списком.
Мне нравится, что Вы рассматриваете его как «кричать на свой код», а не «кричит на вас». Первый раз я видел это различие. – HavelTheGreat
Да, я не принимаю кодирование _that_ лично. –
Проблема «исправлена», если я использую функцию math.pow, но я все равно утверждаю, что numba неправильно понимает стандартную функцию pow. –