class_docstr: Computes `g(L) = inv(L)`, where `L` is a lower-triangular matrix.
  
  `L` must be nonsingular; equivalently, all diagonal entries of `L` must be
  nonzero.
  
  The input must have `rank >= 2`.  The input is treated as a batch of matrices
  with batch shape `input.shape[:-2]`, where each matrix has dimensions
  `input.shape[-2]` by `input.shape[-1]` (hence `input.shape[-2]` must equal
  `input.shape[-1]`).
  
  #### Examples
  
  ```python
  tfp.bijectors.MatrixInverseTriL().forward(x=[[1., 0], [2, 1]])
  # Result: [[1., 0], [-2, 1]], i.e., inv(x)
  
  tfp.bijectors.MatrixInverseTriL().inverse(y=[[1., 0], [-2, 1]])
  # Result: [[1., 0], [2, 1]], i.e., inv(y).
  ```
code: def _forward_log_det_jacobian(self, x):
      # For a discussion of this (non-obvious) result, see Note 7.2.2 (and the
      # sections leading up to it, for context) in
      # http://neutrino.aquaphoenix.com/ReactionDiffusion/SERC5chap7.pdf
      with tf.control_dependencies(self._assertions(x)):
          matrix_dim = tf.cast(
              tf.shape(x)[-1], dtype_util.base_dtype(x.dtype)
          )
          return -(matrix_dim + 1) * tf.reduce_sum(
              tf.math.log(tf.abs(tf.linalg.diag_part(x))), axis=-1
          )
  
file_path: probability/tensorflow_probability/python/bijectors/matrix_inverse_tril.py
imports: import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import bijector
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import dtype_util
label_desc: Use image node_id 5 for calling the MatrixInverseTriL obj's underlying member method code with example usage: obj._forward_log_det_jacobian(x) and returns: unknown