class_docstr: The LKJ distribution on correlation matrices.
  
  This is a one-parameter family of distributions on correlation matrices.  The
  probability density is proportional to the determinant raised to the power of
  the parameter: `pdf(X; eta) = Z(eta) * det(X) ** (eta - 1)`, where `Z(eta)` is
  a normalization constant.  The uniform distribution on correlation matrices is
  the special case `eta = 1`.
  
  The distribution is named after Lewandowski, Kurowicka, and Joe, who gave a
  sampler for the distribution in [(Lewandowski, Kurowicka, Joe, 2009)][1].
  
  Note: For better numerical stability, it is recommended that you use
  `CholeskyLKJ` instead.
  
  #### Examples
  
  ```python
  # Initialize a single 3x3 LKJ with concentration parameter 1.5
  dist = tfp.distributions.LKJ(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 LKJ-distributed 3x3 correlation matrices
  ans = dist.sample(sample_shape=[2, 3], seed=42)
  # shape of ans is [2, 3, 3, 3]
  ```
class_docstr_tok: ["The","LKJ","distribution","on","correlation","matrices",".","This","is","a","one-parameter","family","of","distributions","on","correlation","matrices",".","The","probability","density","is","proportional","to","the","determinant","raised","to","the","power","of","the","parameter",":","`","pdf","(","X",";","eta",")","=","Z","(","eta",")","*","det","(","X",")","*","*","(","eta","-","1",")","`",",","where","`","Z","(","eta",")","`","is","a","normalization","constant",".","The","uniform","distribution","on","correlation","matrices","is","the","special","case","`","eta","=","1","`",".","The","distribution","is","named","after","Lewandowski",",","Kurowicka",",","and","Joe",",","who","gave","a","sampler","for","the","distribution","in","[","(","Lewandowski",",","Kurowicka",",","Joe",",","2009",")","]","[","1","]",".","Note",":","For","better","numerical","stability",",","it","is","recommended","that","you","use","`","CholeskyLKJ","`","instead",".","#","#","#","#","Examples","``","`","python","#","Initialize","a","single","3x3","LKJ","with","concentration","parameter","1.5","dist","=","tfp.distributions.LKJ","(","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","LKJ-distributed","3x3","correlation","matrices","ans","=","dist.sample","(","sample_shape=","[","2",",","3","]",",","seed=42",")","#","shape","of","ans","is","[","2",",","3",",","3",",","3","]","``","`"]
code: def _default_event_space_bijector(self):
      # TODO(b/145620027) Finalize choice of bijector.
      cholesky_bijector = (
          correlation_cholesky_bijector.CorrelationCholesky(
              validate_args=self.validate_args
          )
      )
  
      if self.input_output_cholesky:
          return cholesky_bijector
      return chain_bijector.Chain(
          [
              # We need to explictly clip the output of this bijector because the
              # other two bijectors sometimes return values that exceed the bounds by
              # an epsilon due to minute numerical errors. Even numerically stable
              # algorithms (which the other two bijectors employ) allow for symmetric
              # errors about the true value, which is inappropriate for a one-sided
              # validity constraint associated with correlation matrices.
              _ClipByValue(-1.0, tf.ones([], self.dtype)),
              cholesky_outer_product_bijector.CholeskyOuterProduct(
                  validate_args=self.validate_args
              ),
              cholesky_bijector,
          ],
          validate_args=self.validate_args,
      )
  
imports: import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import bijector
  from tensorflow_probability.python.bijectors import chain
  from tensorflow_probability.python.bijectors import cholesky_outer_product
  from tensorflow_probability.python.bijectors import correlation_cholesky
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.distributions import beta
  from tensorflow_probability.python.distributions import distribution
  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 prefer_static
  from tensorflow_probability.python.internal import reparameterization
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.internal import tensor_util
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.math import linalg
  from tensorflow_probability.python.math import special
  from tensorflow_probability.python.math.numeric import clip_by_value_preserve_gradient
  from tensorflow_probability.python.random import random_ops
  from tensorflow.python.ops import control_flow_util
label_desc: Use image node_id 13 for calling the LKJ obj's underlying member method code with example usage: obj._default_event_space_bijector() and returns: chain_bijector, cholesky_bijector