parameters: (op, *args, **kwargs)
docstring: Applies `op` to the values of one or more RaggedTensors.
  
    Replaces any `RaggedTensor` in `args` or `kwargs` with its `flat_values`
    tensor, and then calls `op`.  Returns a `RaggedTensor` that is constructed
    from the input `RaggedTensor`s' `nested_row_splits` and the value returned by
    the `op`.
  
    If the input arguments contain multiple `RaggedTensor`s, then they must have
    identical `nested_row_splits`.
  
    Examples:
  
    ```python
    >>> rt = ragged.constant([[1, 2, 3], [], [4, 5], [6]])
    >>> ragged.map_flat_values(tf.ones_like, rt).eval().tolist()
    [[1, 1, 1], [], [1, 1], [1]]
    >>> ragged.map_flat_values(tf.multiply, rt, rt).eval().tolist()
    [[1, 4, 9], [], [16, 25], [36]]
    >>> ragged.map_flat_values(tf.add, rt, 5).eval().tolist()
    [[6, 7, 8], [], [9, 10], [11]]
    ```
  
    Args:
      op: The operation that should be applied to the RaggedTensor `flat_values`.
        `op` is typically an element-wise operation (such as math_ops.add), but
        any operation that preserves the size of the outermost dimension can be
        used.  I.e., `shape[0]` of the value returned by `op` must match
        `shape[0]` of the `RaggedTensor`s' `flat_values` tensors.
      *args: Arguments for `op`.
      **kwargs: Keyword arguments for `op`.
  
    Returns:
      A `RaggedTensor` whose `ragged_rank` matches the `ragged_rank` of all
      input `RaggedTensor`s.
    Raises:
      ValueError: If args contains no `RaggedTensors`, or if the `nested_splits`
        of the input `RaggedTensor`s are not identical.
docstring_summary: Applies `op` to the values of one or more RaggedTensors.
docstring_tokens: Applies op to the values of one or more RaggedTensors .
function: def map_flat_values(op, *args, **kwargs):
    """Applies `op` to the values of one or more RaggedTensors.
  
    Replaces any `RaggedTensor` in `args` or `kwargs` with its `flat_values`
    tensor, and then calls `op`.  Returns a `RaggedTensor` that is constructed
    from the input `RaggedTensor`s' `nested_row_splits` and the value returned by
    the `op`.
  
    If the input arguments contain multiple `RaggedTensor`s, then they must have
    identical `nested_row_splits`.
  
    Examples:
  
    ```python
    >>> rt = ragged.constant([[1, 2, 3], [], [4, 5], [6]])
    >>> ragged.map_flat_values(tf.ones_like, rt).eval().tolist()
    [[1, 1, 1], [], [1, 1], [1]]
    >>> ragged.map_flat_values(tf.multiply, rt, rt).eval().tolist()
    [[1, 4, 9], [], [16, 25], [36]]
    >>> ragged.map_flat_values(tf.add, rt, 5).eval().tolist()
    [[6, 7, 8], [], [9, 10], [11]]
    ```
  
    Args:
      op: The operation that should be applied to the RaggedTensor `flat_values`.
        `op` is typically an element-wise operation (such as math_ops.add), but
        any operation that preserves the size of the outermost dimension can be
        used.  I.e., `shape[0]` of the value returned by `op` must match
        `shape[0]` of the `RaggedTensor`s' `flat_values` tensors.
      *args: Arguments for `op`.
      **kwargs: Keyword arguments for `op`.
  
    Returns:
      A `RaggedTensor` whose `ragged_rank` matches the `ragged_rank` of all
      input `RaggedTensor`s.
    Raises:
      ValueError: If args contains no `RaggedTensors`, or if the `nested_splits`
        of the input `RaggedTensor`s are not identical.
    """
    # Replace RaggedTensors with their values; and collect the splits tensors
    # from each RaggedTensor.
    nested_splits_lists = []
    inner_args = _replace_ragged_with_flat_values(args, nested_splits_lists)
    inner_kwargs = _replace_ragged_with_flat_values(kwargs, nested_splits_lists)
    if not nested_splits_lists:
      return op(*args, **kwargs)
  
    split_dtypes = set(splits[0].dtype for splits in nested_splits_lists)
    if len(split_dtypes) > 1:
      if not ragged_config.auto_cast_partition_dtype():
        raise ValueError("Input RaggedTensors have mismatched row_splits dtypes; "
                         "use RaggedTensor.with_row_splits_dtype() to convert "
                         "them to compatible dtypes.")
  
      nested_splits_lists = [
          [math_ops.cast(s, dtypes.int64) for s in nested_splits]  # pylint: disable=g-complex-comprehension
          for nested_splits in nested_splits_lists]
  
    with ops.control_dependencies(
        ragged_util.assert_splits_match(nested_splits_lists)):
      # Delegate to op, and then compose the result from the transformed values
      # and the splits.
      return ragged_tensor.RaggedTensor.from_nested_row_splits(
          op(*inner_args, **inner_kwargs), nested_splits_lists[0], validate=False)
function_tokens: def map_flat_values ( op , * args , * * kwargs ) : # Replace RaggedTensors with their values; and collect the splits tensors # from each RaggedTensor. nested_splits_lists = [ ] inner_args = _replace_ragged_with_flat_values ( args , nested_splits_lists ) inner_kwargs = _replace_ragged_with_flat_values ( kwargs , nested_splits_lists ) if not nested_splits_lists : return op ( * args , * * kwargs ) split_dtypes = set ( splits [ 0 ] . dtype for splits in nested_splits_lists ) if len ( split_dtypes ) > 1 : if not ragged_config . auto_cast_partition_dtype ( ) : raise ValueError ( "Input RaggedTensors have mismatched row_splits dtypes; " "use RaggedTensor.with_row_splits_dtype() to convert " "them to compatible dtypes." ) nested_splits_lists = [ [ math_ops . cast ( s , dtypes . int64 ) for s in nested_splits ] # pylint: disable=g-complex-comprehension for nested_splits in nested_splits_lists ] with ops . control_dependencies ( ragged_util . assert_splits_match ( nested_splits_lists ) ) : # Delegate to op, and then compose the result from the transformed values # and the splits. return ragged_tensor . RaggedTensor . from_nested_row_splits ( op ( * inner_args , * * inner_kwargs ) , nested_splits_lists [ 0 ] , validate = False )