class_docstr: The CholeskyLKJ distribution on cholesky factors of correlation matrices.
  
  This is a one-parameter family of distributions on cholesky factors of
  correlation matrices.
  
  In other words, if If `X ~ CholeskyLKJ(c)`, then `X @ X^T ~ LKJ(c)`.
  
  The distribution is supported on lower triangular N x N matrices which are
  Cholesky factors of correlation matrices; equivalently, matrices whose rows
  have Euclidean norm 1 and diagonal entries are positive. The probability
  density function is given by:
  
    pdf(X; c) = (1/Z(c)) prod_i X_ii^{n-i+2c-3}  (0 <= i < n)
  
  where there are n(n-1)/2 independent variables X_ij (0 <= i < j < n) and
  Z(c) is the normalizing constant; the same one as that of LKJ(c).
  
  For more details on the LKJ distribution, see `tfp.distributions.LKJ`.
  
  #### Examples
  
  ```python
  # Initialize a single 3x3 LKJ with concentration parameter 1.5
  dist = tfp.distributions.CholeskyLKJ(dimension=3, concentration=1.5)
  
  # Evaluate this at a batch of two observations, each in R^{3x3}.
  x = ...  # Shape is [2, 3, 3].
  dist.prob(x)  # Shape is [2].
  
  # Draw 6 Cholesky LKJ-distributed 3x3 lower triangular matrices
  ans = dist.sample(sample_shape=[2, 3], seed=42)
  # shape of ans is [2, 3, 3, 3]
  ```
  The sampler follows the 'onion' method from
  
  [1] Daniel Lewandowski, Dorota Kurowicka, and Harry Joe,
  'Generating random correlation matrices based on vines and extended
  onion method,' Journal of Multivariate Analysis 100 (2009), pp
  1989-2001.
class_docstr_tok: ["The","CholeskyLKJ","distribution","on","cholesky","factors","of","correlation","matrices",".","This","is","a","one-parameter","family","of","distributions","on","cholesky","factors","of","correlation","matrices",".","In","other","words",",","if","If","`","X","~","CholeskyLKJ","(","c",")","`",",","then","`","X","@","X^T","~","LKJ","(","c",")","`",".","The","distribution","is","supported","on","lower","triangular","N","x","N","matrices","which","are","Cholesky","factors","of","correlation","matrices",";","equivalently",",","matrices","whose","rows","have","Euclidean","norm","1","and","diagonal","entries","are","positive",".","The","probability","density","function","is","given","by",":","pdf","(","X",";","c",")","=","(","1\/Z","(","c",")",")","prod_i","X_ii^","{","n-i+2c-3","}","(","0","<","=","i","<","n",")","where","there","are","n","(","n-1",")","\/2","independent","variables","X_ij","(","0","<","=","i","<","j","<","n",")","and","Z","(","c",")","is","the","normalizing","constant",";","the","same","one","as","that","of","LKJ","(","c",")",".","For","more","details","on","the","LKJ","distribution",",","see","`","tfp.distributions.LKJ","`",".","#","#","#","#","Examples","``","`","python","#","Initialize","a","single","3x3","LKJ","with","concentration","parameter","1.5","dist","=","tfp.distributions.CholeskyLKJ","(","dimension=3",",","concentration=1.5",")","#","Evaluate","this","at","a","batch","of","two","observations",",","each","in","R^","{","3x3","}",".","x","=","...","#","Shape","is","[","2",",","3",",","3","]",".","dist.prob","(","x",")","#","Shape","is","[","2","]",".","#","Draw","6","Cholesky","LKJ-distributed","3x3","lower","triangular","matrices","ans","=","dist.sample","(","sample_shape=","[","2",",","3","]",",","seed=42",")","#","shape","of","ans","is","[","2",",","3",",","3",",","3","]","``","`","The","sampler","follows","the","'onion","'","method","from","[","1","]","Daniel","Lewandowski",",","Dorota","Kurowicka",",","and","Harry","Joe",",","'Generating","random","correlation","matrices","based","on","vines","and","extended","onion","method",",","'","Journal","of","Multivariate","Analysis","100","(","2009",")",",","pp","1989-2001","."]
docstr: Concentration parameter.
docstr_tok: ["Concentration","parameter","."]
code: def concentration(self):
      """Concentration parameter."""
      return self._concentration
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import correlation_cholesky
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.distributions import lkj
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import parameter_properties
  from tensorflow_probability.python.internal import reparameterization
  from tensorflow_probability.python.internal import tensor_util
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.math import special
label_desc: Use image node_id 4 for calling the CholeskyLKJ obj's underlying member method code with example usage: obj.concentration() and returns: self