def c_Func(nu, logdetB, M, logdetV):
''' Evaluate cumulant function c at given parameters.
c is the cumulant of the MatrixNormal-Wishart, using common params.
Returns
--------
c : scalar real value of cumulant function at provided args
'''
if logdetB.ndim >= 2:
logdetB = np.log(np.linalg.det(logdetB))
if logdetV.ndim >= 2:
logdetV = np.log(np.linalg.det(logdetV))
D, E = M.shape
dvec = np.arange(1, D + 1, dtype=np.float)
return - 0.25 * D * (D - 1) * LOGPI \
- 0.5 * D * LOGTWO * nu \
- np.sum(gammaln(0.5 * (nu + 1 - dvec))) \
+ 0.5 * nu * logdetB \
- 0.5 * D * E * LOGTWOPI \
+ 0.5 * E * logdetV
评论列表
文章目录