class_docstr: Heavy tail transformation for Lambert W x F distributions.
  
  This bijector defines the transformation z = u * exp(0.5 * delta * u**2)
  and its inverse, where it is assumed that `u` is already an appropriately
  shifted & scaled input. It is the basis of the location-scale heavy-tail
  Lambert W x F distributions / transformations.
  The effect of this transformation is that it adds heavy tails to input.
  
  Attributes:
    tailweight: Tail parameter `delta` of the transformation(s).
class_docstr_tok: ["Heavy","tail","transformation","for","Lambert","W","x","F","distributions",".","This","bijector","defines","the","transformation","z","=","u","*","exp","(","0.5","*","delta","*","u","*","*","2",")","and","its","inverse",",","where","it","is","assumed","that","`","u","`","is","already","an","appropriately","shifted","&","scaled","input",".","It","is","the","basis","of","the","location-scale","heavy-tail","Lambert","W","x","F","distributions","\/","transformations",".","The","effect","of","this","transformation","is","that","it","adds","heavy","tails","to","input",".","Attributes",":","tailweight",":","Tail","parameter","`","delta","`","of","the","transformation","(","s",")","."]
docstr: Returns log of the Jacobian determinant of the inverse function.
docstr_tok: ["Returns","log","of","the","Jacobian","determinant","of","the","inverse","function","."]
code: def _inverse_log_det_jacobian(self, y):
      """Returns log of the Jacobian determinant of the inverse function."""
      # Jacobian is log(W_delta(y, delta) / y) - log(1 + W(delta * y^2)).
      # Note that W_delta(y, delta) / y >= 0, since they share the same sign.
      # For numerical stability use log(abs()) - log(abs()).
      # See also Eq (11) and (31) of
      # https://www.hindawi.com/journals/tswj/2015/909231/
      log_jacobian_term_nonzero = (
          tf.math.log(
              tf.abs(_w_delta_squared(y, delta=self._tailweight))
          )
          - tf.math.log(tf.abs(y))
          - tf.math.log(
              1.0 + special.lambertw(self._tailweight * y**2)
          )
      )
      # If y = 0 the expression becomes log(0/0) - log(1 + 0), and the first term
      # equals log(1) = 0.  Hence, for y = 0 the whole expression equals 0.
      return tf.where(
          tf.equal(y, 0.0), tf.zeros_like(y), log_jacobian_term_nonzero
      )
  
imports: import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import bijector
  from tensorflow_probability.python.bijectors import chain
  from tensorflow_probability.python.bijectors import invert
  from tensorflow_probability.python.bijectors import scale
  from tensorflow_probability.python.bijectors import shift
  from tensorflow_probability.python.bijectors import softplus
  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 tensor_util
  from tensorflow_probability.python.math import special
label_desc: Use image node_id 5 for calling the _HeavyTailOnly obj's underlying member method code with example usage: obj._inverse_log_det_jacobian(y) and returns: tf