parameters: (self,
                 loc,
                 scale,
                 skewness=None,
                 tailweight=None,
                 distribution=None,
                 validate_args=False,
                 allow_nan_stats=True,
                 name="SinhArcsinh")
docstring: Construct SinhArcsinh distribution on `(-inf, inf)`.
  
      Arguments `(loc, scale, skewness, tailweight)` must have broadcastable shape
      (indexing batch dimensions).  They must all have the same `dtype`.
  
      Args:
        loc: Floating-point `Tensor`.
        scale:  `Tensor` of same `dtype` as `loc`.
        skewness:  Skewness parameter.  Default is `0.0` (no skew).
        tailweight:  Tailweight parameter. Default is `1.0` (unchanged tailweight)
        distribution: `tf.Distribution`-like instance. Distribution that is
          transformed to produce this distribution.
          Default is `tfp.distributions.Normal(0., 1.)`.
          Must be a scalar-batch, scalar-event distribution.  Typically
          `distribution.reparameterization_type = FULLY_REPARAMETERIZED` or it is
          a function of non-trainable parameters. WARNING: If you backprop through
          a `SinhArcsinh` sample and `distribution` is not
          `FULLY_REPARAMETERIZED` yet is a function of trainable variables, then
          the gradient will be incorrect!
        validate_args: Python `bool`, default `False`. When `True` distribution
          parameters are checked for validity despite possibly degrading runtime
          performance. When `False` invalid inputs may silently render incorrect
          outputs.
        allow_nan_stats: Python `bool`, default `True`. When `True`,
          statistics (e.g., mean, mode, variance) use the value "`NaN`" to
          indicate the result is undefined. When `False`, an exception is raised
          if one or more of the statistic's batch members are undefined.
        name: Python `str` name prefixed to Ops created by this class.
docstring_summary: Construct SinhArcsinh distribution on `(-inf, inf)`.
docstring_tokens: Construct SinhArcsinh distribution on ( - inf inf ) .
function: def __init__(self,
                 loc,
                 scale,
                 skewness=None,
                 tailweight=None,
                 distribution=None,
                 validate_args=False,
                 allow_nan_stats=True,
                 name="SinhArcsinh"):
      """Construct SinhArcsinh distribution on `(-inf, inf)`.
  
      Arguments `(loc, scale, skewness, tailweight)` must have broadcastable shape
      (indexing batch dimensions).  They must all have the same `dtype`.
  
      Args:
        loc: Floating-point `Tensor`.
        scale:  `Tensor` of same `dtype` as `loc`.
        skewness:  Skewness parameter.  Default is `0.0` (no skew).
        tailweight:  Tailweight parameter. Default is `1.0` (unchanged tailweight)
        distribution: `tf.Distribution`-like instance. Distribution that is
          transformed to produce this distribution.
          Default is `tfp.distributions.Normal(0., 1.)`.
          Must be a scalar-batch, scalar-event distribution.  Typically
          `distribution.reparameterization_type = FULLY_REPARAMETERIZED` or it is
          a function of non-trainable parameters. WARNING: If you backprop through
          a `SinhArcsinh` sample and `distribution` is not
          `FULLY_REPARAMETERIZED` yet is a function of trainable variables, then
          the gradient will be incorrect!
        validate_args: Python `bool`, default `False`. When `True` distribution
          parameters are checked for validity despite possibly degrading runtime
          performance. When `False` invalid inputs may silently render incorrect
          outputs.
        allow_nan_stats: Python `bool`, default `True`. When `True`,
          statistics (e.g., mean, mode, variance) use the value "`NaN`" to
          indicate the result is undefined. When `False`, an exception is raised
          if one or more of the statistic's batch members are undefined.
        name: Python `str` name prefixed to Ops created by this class.
      """
      parameters = dict(locals())
  
      with ops.name_scope(name,
                          values=[loc, scale, skewness, tailweight]) as name:
        loc = ops.convert_to_tensor(loc, name="loc")
        dtype = loc.dtype
        scale = ops.convert_to_tensor(scale, name="scale", dtype=dtype)
        tailweight = 1. if tailweight is None else tailweight
        has_default_skewness = skewness is None
        skewness = 0. if skewness is None else skewness
        tailweight = ops.convert_to_tensor(
            tailweight, name="tailweight", dtype=dtype)
        skewness = ops.convert_to_tensor(skewness, name="skewness", dtype=dtype)
  
        batch_shape = distribution_util.get_broadcast_shape(
            loc, scale, tailweight, skewness)
  
        # Recall, with Z a random variable,
        #   Y := loc + C * F(Z),
        #   F(Z) := Sinh( (Arcsinh(Z) + skewness) * tailweight )
        #   F_0(Z) := Sinh( Arcsinh(Z) * tailweight )
        #   C := 2 * scale / F_0(2)
        if distribution is None:
          distribution = normal.Normal(
              loc=array_ops.zeros([], dtype=dtype),
              scale=array_ops.ones([], dtype=dtype),
              allow_nan_stats=allow_nan_stats)
        else:
          asserts = distribution_util.maybe_check_scalar_distribution(
              distribution, dtype, validate_args)
          if asserts:
            loc = control_flow_ops.with_dependencies(asserts, loc)
  
        # Make the SAS bijector, 'F'.
        f = bijectors.SinhArcsinh(
            skewness=skewness, tailweight=tailweight)
        if has_default_skewness:
          f_noskew = f
        else:
          f_noskew = bijectors.SinhArcsinh(
              skewness=skewness.dtype.as_numpy_dtype(0.),
              tailweight=tailweight)
  
        # Make the AffineScalar bijector, Z --> loc + scale * Z (2 / F_0(2))
        c = 2 * scale / f_noskew.forward(ops.convert_to_tensor(2, dtype=dtype))
        affine = bijectors.AffineScalar(
            shift=loc,
            scale=c,
            validate_args=validate_args)
  
        bijector = bijectors.Chain([affine, f])
  
        super(SinhArcsinh, self).__init__(
            distribution=distribution,
            bijector=bijector,
            batch_shape=batch_shape,
            validate_args=validate_args,
            name=name)
      self._parameters = parameters
      self._loc = loc
      self._scale = scale
      self._tailweight = tailweight
      self._skewness = skewness
function_tokens: def __init__ ( self , loc , scale , skewness = None , tailweight = None , distribution = None , validate_args = False , allow_nan_stats = True , name = "SinhArcsinh" ) : parameters = dict ( locals ( ) ) with ops . name_scope ( name , values = [ loc , scale , skewness , tailweight ] ) as name : loc = ops . convert_to_tensor ( loc , name = "loc" ) dtype = loc . dtype scale = ops . convert_to_tensor ( scale , name = "scale" , dtype = dtype ) tailweight = 1. if tailweight is None else tailweight has_default_skewness = skewness is None skewness = 0. if skewness is None else skewness tailweight = ops . convert_to_tensor ( tailweight , name = "tailweight" , dtype = dtype ) skewness = ops . convert_to_tensor ( skewness , name = "skewness" , dtype = dtype ) batch_shape = distribution_util . get_broadcast_shape ( loc , scale , tailweight , skewness ) # Recall, with Z a random variable, #   Y := loc + C * F(Z), #   F(Z) := Sinh( (Arcsinh(Z) + skewness) * tailweight ) #   F_0(Z) := Sinh( Arcsinh(Z) * tailweight ) #   C := 2 * scale / F_0(2) if distribution is None : distribution = normal . Normal ( loc = array_ops . zeros ( [ ] , dtype = dtype ) , scale = array_ops . ones ( [ ] , dtype = dtype ) , allow_nan_stats = allow_nan_stats ) else : asserts = distribution_util . maybe_check_scalar_distribution ( distribution , dtype , validate_args ) if asserts : loc = control_flow_ops . with_dependencies ( asserts , loc ) # Make the SAS bijector, 'F'. f = bijectors . SinhArcsinh ( skewness = skewness , tailweight = tailweight ) if has_default_skewness : f_noskew = f else : f_noskew = bijectors . SinhArcsinh ( skewness = skewness . dtype . as_numpy_dtype ( 0. ) , tailweight = tailweight ) # Make the AffineScalar bijector, Z --> loc + scale * Z (2 / F_0(2)) c = 2 * scale / f_noskew . forward ( ops . convert_to_tensor ( 2 , dtype = dtype ) ) affine = bijectors . AffineScalar ( shift = loc , scale = c , validate_args = validate_args ) bijector = bijectors . Chain ( [ affine , f ] ) super ( SinhArcsinh , self ) . __init__ ( distribution = distribution , bijector = bijector , batch_shape = batch_shape , validate_args = validate_args , name = name ) self . _parameters = parameters self . _loc = loc self . _scale = scale self . _tailweight = tailweight self . _skewness = skewness