'The variational lower bound for the concentration parameter.'

def _bound_concentration(self):

    logprior = (gammaln(self.alpha) * self.n_components)
    logprior += np.sum(((self.alpha - 1) * (digamma(self.gamma_.T[2]) - digamma((self.gamma_.T[1] + self.gamma_.T[2])))))
    logprior += np.sum((- gammaln((self.gamma_.T[1] + self.gamma_.T[2]))))
    logprior += np.sum((gammaln(self.gamma_.T[1]) + gammaln(self.gamma_.T[2])))
    logprior -= np.sum(((self.gamma_.T[1] - 1) * (digamma(self.gamma_.T[1]) - digamma((self.gamma_.T[1] + self.gamma_.T[2])))))
    logprior -= np.sum(((self.gamma_.T[2] - 1) * (digamma(self.gamma_.T[2]) - digamma((self.gamma_.T[1] + self.gamma_.T[2])))))
    return logprior
