class_docstr: Wishart prior over n x n positive definite matrices
  
  pdf(Sigma) \sim |Sigma|^(nu - n - 1)/2 * exp(-0.5 * Trace(K^-1 Sigma))
  
  where nu > n - 1 are the degrees of freedom and K > 0 is the p x p scale matrix
  
  Reference: A. Shah, A. G. Wilson, and Z. Ghahramani. Student-t Processes as
      Alternatives to Gaussian Processes. ArXiv e-prints, Feb. 2014.
class_docstr_tok: ["Wishart","prior","over","n","x","n","positive","definite","matrices","pdf","(","Sigma",")","\\sim","|Sigma|^","(","nu","-","n","-","1",")","\/2","*","exp","(","-0.5","*","Trace","(","K^-1","Sigma",")",")","where","nu",">","n","-","1","are","the","degrees","of","freedom","and","K",">","0","is","the","p","x","p","scale","matrix","Reference",":","A.","Shah",",","A.","G.","Wilson",",","and","Z.","Ghahramani",".","Student-t","Processes","as","Alternatives","to","Gaussian","Processes",".","ArXiv","e-prints",",","Feb.","2014","."]
code: def log_prob(self, X):
      # I'm sure this could be done more elegantly
      logdetp = torch.logdet(X)
      Kinvp = torch.matmul(self.K_inv, X)
      trKinvp = torch.diagonal(Kinvp, dim1=-2, dim2=-1).sum(-1)
      return self.C + 0.5 * (self.nu - self.n - 1) * logdetp - trKinvp
  
file_path: gpytorch/gpytorch/priors/wishart_prior.py
imports: import math
  from numbers import Number
  import torch
  from torch.distributions import constraints
  from torch.nn import Module
  from .prior import Prior
label_desc: Use image node_id 2 for calling the WishartPrior obj's underlying member method code with example usage: obj.log_prob(X) and returns: unknown