class_docstr: Computes `Y = g(X) = Abs(X)`, element-wise.
  
  This non-injective bijector allows for transformations of scalar distributions
  with the absolute value function, which maps `(-inf, inf)` to `[0, inf)`.
  
  * For `y in (0, inf)`, `AbsoluteValue.inverse(y)` returns the set inverse
    `{x in (-inf, inf) : |x| = y}` as a tuple, `-y, y`.
  * `AbsoluteValue.inverse(0)` returns `0, 0`, which is not the set inverse
    (the set inverse is the singleton `{0}`), but "works" in conjunction with
    `TransformedDistribution` to produce a left semi-continuous pdf.
  * For `y < 0`, `AbsoluteValue.inverse(y)` happily returns the
    wrong thing, `-y, y`.  This is done for efficiency.  If
    `validate_args == True`, `y < 0` will raise an exception.
  
  
  ```python
  abs = tfp.bijectors.AbsoluteValue()
  
  abs.forward([-1., 0., 1.])
  ==> [1., 0.,  1.]
  
  abs.inverse(1.)
  ==> [-1., 1.]
  
  # The |dX/dY| is constant, == 1.  So Log|dX/dY| == 0.
  abs.inverse_log_det_jacobian(1.)
  ==> [0., 0.]
  
  # Special case handling of 0.
  abs.inverse(0.)
  ==> [0., 0.]
  
  abs.inverse_log_det_jacobian(0.)
  ==> [0., 0.]
  ```
class_docstr_tok: ["Computes","`","Y","=","g","(","X",")","=","Abs","(","X",")","`",",","element-wise",".","This","non-injective","bijector","allows","for","transformations","of","scalar","distributions","with","the","absolute","value","function",",","which","maps","`","(","-inf",",","inf",")","`","to","`","[","0",",","inf",")","`",".","*","For","`","y","in","(","0",",","inf",")","`",",","`","AbsoluteValue.inverse","(","y",")","`","returns","the","set","inverse","`","{","x","in","(","-inf",",","inf",")",":","|x|","=","y","}","`","as","a","tuple",",","`","-y",",","y","`",".","*","`","AbsoluteValue.inverse","(","0",")","`","returns","`","0",",","0","`",",","which","is","not","the","set","inverse","(","the","set","inverse","is","the","singleton","`","{","0","}","`",")",",","but","``","works","''","in","conjunction","with","`","TransformedDistribution","`","to","produce","a","left","semi-continuous","pdf",".","*","For","`","y","<","0","`",",","`","AbsoluteValue.inverse","(","y",")","`","happily","returns","the","wrong","thing",",","`","-y",",","y","`",".","This","is","done","for","efficiency",".","If","`","validate_args","==","True","`",",","`","y","<","0","`","will","raise","an","exception",".","``","`","python","abs","=","tfp.bijectors.AbsoluteValue","(",")","abs.forward","(","[","-1.",",","0.",",","1",".","]",")","==",">","[","1.",",","0.",",","1",".","]","abs.inverse","(","1",".",")","==",">","[","-1.",",","1",".","]","#","The","|dX\/dY|","is","constant",",","==","1",".","So","Log|dX\/dY|","==","0",".","abs.inverse_log_det_jacobian","(","1",".",")","==",">","[","0.",",","0",".","]","#","Special","case","handling","of","0",".","abs.inverse","(","0",".",")","==",">","[","0.",",","0",".","]","abs.inverse_log_det_jacobian","(","0",".",")","==",">","[","0.",",","0",".","]","``","`"]
code: def _inverse(self, y):
      with tf.control_dependencies(self._assertions(y)):
          return -y, y
  
file_path: probability/tensorflow_probability/python/bijectors/absolute_value.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 AbsoluteValue obj's underlying member method code with example usage: obj._inverse(y) and returns: unknown,  y