예제 #1
0
def binom(n, k):
    """
    binom(n, k)

    Binomial coefficient
    """
    return exp(gammaln(1 + n) - gammaln(1 + k) - gammaln(1 + n - k))
예제 #2
0
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)
예제 #3
0
    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)
예제 #4
0
    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
예제 #5
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]
예제 #6
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]