def _extend_support_with_default_value(self, x, f, default_value):
    """Returns `f(x)` if x is in the support, and `default_value` otherwise.

    Given `f` which is defined on the support of this distribution
    (`x >= loc`), extend the function definition to the real line
    by defining `f(x) = default_value` for `x < loc`.

    Args:
      x: Floating-point `Tensor` to evaluate `f` at.
      f: Callable that takes in a `Tensor` and returns a `Tensor`. This
        represents the function whose domain of definition we want to extend.
      default_value: Python or numpy literal representing the value to use for
        extending the domain.
    Returns:
      `Tensor` representing an extension of `f(x)`.
    """
    with tf.name_scope("extend_support_with_default_value"):
      x = tf.convert_to_tensor(value=x, dtype=self.dtype, name="x")
      loc = self.loc + tf.zeros_like(self.scale) + tf.zeros_like(x)
      x = x + tf.zeros_like(loc)
      # Substitute out-of-support values in x with values that are in the
      # support of the distribution before applying f.
      y = f(tf.where(x < loc, self._inv_z(0.5) + tf.zeros_like(x), x))
      if default_value == 0.:
        default_value = tf.zeros_like(y)
      elif default_value == 1.:
        default_value = tf.ones_like(y)
      else:
        default_value = tf.fill(
            dims=tf.shape(input=y),
            value=dtype_util.as_numpy_dtype(self.dtype)(default_value))
      return tf.where(x < loc, default_value, y)
def _extend_support_with_default_value(self, x, f, default_value):
    
    with tf.name_scope("extend_support_with_default_value"):
      x = tf.convert_to_tensor(value=x, dtype=self.dtype, name="x")
      loc = self.loc + tf.zeros_like(self.scale) + tf.zeros_like(x)
      x = x + tf.zeros_like(loc)
      
      
      y = f(tf.where(x < loc, self._inv_z(0.5) + tf.zeros_like(x), x))
      if default_value == 0.:
        default_value = tf.zeros_like(y)
      elif default_value == 1.:
        default_value = tf.ones_like(y)
      else:
        default_value = tf.fill(
            dims=tf.shape(input=y),
            value=dtype_util.as_numpy_dtype(self.dtype)(default_value))
      return tf.where(x < loc, default_value, y)
def _extend_support_with_default_value ( self , x , f , default_value ) : with tf . name_scope ( "extend_support_with_default_value" ) : x = tf . convert_to_tensor ( value = x , dtype = self . dtype , name = "x" ) loc = self . loc + tf . zeros_like ( self . scale ) + tf . zeros_like ( x ) x = x + tf . zeros_like ( loc ) # Substitute out-of-support values in x with values that are in the # support of the distribution before applying f. y = f ( tf . where ( x < loc , self . _inv_z ( 0.5 ) + tf . zeros_like ( x ) , x ) ) if default_value == 0. : default_value = tf . zeros_like ( y ) elif default_value == 1. : default_value = tf . ones_like ( y ) else : default_value = tf . fill ( dims = tf . shape ( input = y ) , value = dtype_util . as_numpy_dtype ( self . dtype ) ( default_value ) ) return tf . where ( x < loc , default_value , y )
Returns `f(x)` if x is in the support, and `default_value` otherwise.

    Given `f` which is defined on the support of this distribution
    (`x >= loc`), extend the function definition to the real line
    by defining `f(x) = default_value` for `x < loc`.

    Args:
      x: Floating-point `Tensor` to evaluate `f` at.
      f: Callable that takes in a `Tensor` and returns a `Tensor`. This
        represents the function whose domain of definition we want to extend.
      default_value: Python or numpy literal representing the value to use for
        extending the domain.
    Returns:
      `Tensor` representing an extension of `f(x)`.
Returns f ( x ) if x is in the support and default_value otherwise .