wolffd@0: function L = log_student_pdf(X, mu, lambda, alpha) wolffd@0: % LOG_STUDENT_PDF Evaluate the log of the multivariate student-t distribution at a point wolffd@0: % L = log_student_pdf(X, mu, lambda, alpha) wolffd@0: % wolffd@0: % Each column of X is evaluated. wolffd@0: % See Bernardo and Smith p435. wolffd@0: wolffd@0: k = length(mu); wolffd@0: assert(size(X,1) == k); wolffd@0: [k N] = size(X); wolffd@0: logc = gammaln(0.5*(alpha+k)) - gammaln(0.5*alpha) - (k/2)*log(alpha*pi) + 0.5*log(det(lambda)); wolffd@0: middle = (1 + (1/alpha)*(X-mu)'*lambda*(X-mu)); % scalar version wolffd@0: L = logc - ((alpha+k)/2)*log(middle);