def binom(n, k): """ binom(n, k) Binomial coefficient """ return exp(gammaln(1 + n) - gammaln(1 + k) - gammaln(1 + n - k))
def eval_sh_jacobi(n, p, q, x, out=None): """ eval_sh_jacobi(n, p, q, x, out=None) Evaluate shifted Jacobi polynomial at a point. """ factor = exp(gammaln(1 + n) + gammaln(n + p) - gammaln(2 * n + p)) return factor * eval_jacobi(n, p - q, q - 1, 2 * x - 1)
def ln_prob(self, val): """Returns the log prior probability of val. Parameters ---------- val: Union[float, int, array_like] Returns ------- Union[float, array_like]: Prior probability of val """ return gammaln(0.5 * (self.df + 1)) - gammaln(0.5 * self.df)\ - np.log(np.sqrt(np.pi * self.df) * self.scale) - (self.df + 1) / 2 *\ np.log(1 + ((val - self.mu) / self.scale) ** 2 / self.df)
def ln_prob(self, val): """Returns the log prior probability of val. Parameters ---------- val: Union[float, int, array_like] Returns ------- Union[float, array_like]: Prior probability of val """ if isinstance(val, (float, int)): if val < self.minimum: _ln_prob = -np.inf else: _ln_prob = xlogy(self.k - 1, val) - val / self.theta - xlogy( self.k, self.theta) - gammaln(self.k) else: _ln_prob = -np.inf * np.ones(len(val)) idx = (val >= self.minimum) _ln_prob[idx] = xlogy(self.k - 1, val[idx]) - val[idx] / self.theta\ - xlogy(self.k, self.theta) - gammaln(self.k) return _ln_prob
def ll_F_Y(self, F, Y): _log_lambda = (F + self.offset) return (Y * _log_lambda - np.exp(_log_lambda) - gammaln(Y + 1))[:, :, 0], (Y - np.exp(F + self.offset))[:, :, 0]
def ll_F_Y(self, F, Y): _log_lambda = F + self.offset return (Y * _log_lambda - np.exp(_log_lambda) - gammaln(Y + 1))[:, :, 0], (Y - np.exp(F + self.offset))[:, :, 0]