Может быть какой-то способ обработки больших целых чисел в Numba, но это не тот метод, который мне известен.
Но, поскольку мы знаем, что вы пытаетесь вручную написать код оценки Бета-дистрибутив в Нумбе, у меня есть несколько других предложений.
Во-первых, мы должны быть осторожны с нашим языком, чтобы не путать дистрибутив Бета и Beta функция .
Я бы порекомендовал перенести все ваши вычисления в логарифмическую шкалу.То есть вместо вычисления pdf-файла бета-распределения вы вычисляете журнал pdf бета-распределения.
Этот прием обычно используется в статистических вычислениях как журналPDF более численно стабилен, чем PDF.Например, проект Stan работает исключительно для вычисления апостериорной плотности журнала.
Из вашей истории сообщений я также знаю, что вы заинтересованы в MCMC;для выполнения MCMC также распространена практика использования журналов pdf.В случае MCMC, вместо того, чтобы иметь заднюю пропорцию, пропорциональную вероятности предыдущего времени, в логарифмической шкале вы будете иметь log -постериор, пропорциональный log -prior plus вероятность log .
Я бы порекомендовал вам использовать распределения журналов, так как это позволит вам избежать необходимости когда-либо вычислять $ \ Gamma (n) $ для больших n, который склонен к целочисленному переполнению.Вместо этого вы вычисляете $ \ log (\ Gamma (n)) $.Но разве вам не нужно вычислять $ \ Gamma (n) $ для вычисления $ \ log (\ Gamma (n)) $?Вообще-то, нет.Вы можете взглянуть на функцию scipy.special
gammaln
, которая позволяет вообще не вычислять $ \ Gamma (n) $.Одним из способов продвижения вперед было бы посмотреть на исходный код в scipy.special.gammaln
и сделать из этого собственную реализацию numba.
В своем комментарии вы также упоминаете об использовании Аппроксимация Спуга для аппроксимации гаммыфункция.Я не использовал приближение Споуга раньше, но добился успеха с приближением Стирлинга .Если вы хотите использовать одно из этих приближений, работая в логарифмическом масштабе, вы теперь берете журнал приближения.Вы захотите использовать правила ведения журналов , чтобы переписать эти приближения.
Учитывая все вышеизложенное, я бы порекомендовал перенести вычисления из pdf в журнал pdf.,Для вычисления pdf-файла дистрибутива Beta я бы использовал это приближение функции Beta .Использование правил журналов, чтобы переписать это приближение и бета-версию PDF.Затем вы могли бы реализовать эту Numba, не беспокоясь о переполнении целых чисел.
Редактировать
Извинения, я не уверен, как форматировать математику при переполнении стека.