class_docstr: LKJ prior over n x n (positive definite) correlation matrices
  
  .. math:
  
      \begin{equation*}
          pdf(\Sigma) \sim |\Sigma| ^ (\eta  - 1)
      \end{equation*}
  
  where :math:`\eta > 0` is a shape parameter.
  
  Reference: Bayesian Data Analysis, 3rd ed., Gelman et al., p. 576
code: def log_prob(self, X):
      if any(s != self.n for s in X.shape[-2:]):
          raise ValueError(
              "Correlation matrix is not of size n={}".format(self.n)
          )
      if not _is_valid_correlation_matrix(X):
          raise ValueError("Input is not a valid correlation matrix")
      X_cholesky = psd_safe_cholesky(X, upper=False)
      return super().log_prob(X_cholesky)
  
imports: import torch
  from linear_operator.utils.cholesky import psd_safe_cholesky
  from torch.distributions import constraints, LKJCholesky
  from torch.nn import Module
  from ..None import settings
  from .prior import Prior
label_desc: Use image node_id 1 for calling the LKJPrior obj's underlying member method code with example usage: obj.log_prob(X) and returns: super