Skip to content

Instantly share code, notes, and snippets.

@vlavorini
Last active January 5, 2019 16:08
Show Gist options
  • Save vlavorini/1d4ca732dd43c8d56a1173d30bf448de to your computer and use it in GitHub Desktop.
Save vlavorini/1d4ca732dd43c8d56a1173d30bf448de to your computer and use it in GitHub Desktop.
from math import lgamma
from numba import jit
@jit
def h(a, b, c, d):
num = lgamma(a + c) + lgamma(b + d) + lgamma(a + b) + lgamma(c + d)
den = lgamma(a) + lgamma(b) + lgamma(c) + lgamma(d) + lgamma(a + b + c + d)
return np.exp(num - den)
@jit
def g0(a, b, c):
return np.exp(lgamma(a + b) + lgamma(a + c) - (lgamma(a + b + c) + lgamma(a)))
@jit
def hiter(a, b, c, d):
while d > 1:
d -= 1
yield h(a, b, c, d) / d
def g(a, b, c, d):
return g0(a, b, c) + sum(hiter(a, b, c, d))
def calc_area_between(beta1, beta2):
return g(beta1.args[0], beta1.args[1], beta2.args[0], beta2.args[1])
calc_area_between(beta_T, beta_C)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment