Source code for trilearn.distributions.multivariate_students_t

"""
Students t-distribution.
"""
import math

import numpy as np
from numpy.linalg import slogdet


[docs] def log_pdf(x, mu, T, n): [k, N] = x.shape xm = x-mu (sign, logdet) = slogdet(T) logc = math.lgamma((n + k)/2.0) logc += 0.5*logdet logc -= math.lgamma(n/2.0) logc -= np.log(n*math.pi) * (k/2.0) logp = -0.5 * (n+k) * np.log(1 + xm.T * T * xm/n) logp = logp + logc return float(logp)