code: def scatter_add(x0, indices, x1, axis=None):
      """Add all values from `x1` into the `x0` according to index specified by `indices`.
      This function adds `x1` into the copy of `x0` and outputs the copy.
      The original `x0` will not be changed.
      `x0`, `indices` and `x1` must have same number of dimensions.
  
      The forward of :func:`~nnabla.functions.scatter_add` is equivalent to:
  
      .. code-block:: python
  
        def scatter_add(x0, indices, x1, axis):
            # Assuming each input is 3 dimensional
            import numpy as np
            output = np.copy(x0)
            for i in range(indices.shape[0]):
                for j in range(indices.shape[1]):
                    for k in range(indices.shape[2]):
                        if axis == 0:
                            output[indices[i][j][k]][j][k] += x1[i][j][k]
                        elif axis == 1:
                            output[i][indices[i][j][k]][k] += x1[i][j][k]
                        elif axis == 2:
                            output[i][j][indices[i][j][k]] += x1[i][j][k]
            return output
  
      Args:
          x0(~nnabla.Variable): N-D array which the data is added to its copy.
          indices(~nnabla.Variable): N-D array scatter indices.
            The size of each dimension must be equal or smaller than that of x0 except for the specified axis.
            The value of indices must be smaller than the size of specified axis' dimension of x0.
            The size of each dimension must be equal or smaller than that of x1.
            Indices must not be negative.
          x1(~nnabla.Variable): N-D array which is scattered and added to x0.
          axis(int): Axis along which to index. The axis must not exceed the inputs' dimension.
              [default= `0` ]
  
      Returns:
          ~nnabla.Variable: N-D array which contains the result of scatter addition. The shape is same as x0.
      """
      from .function_bases import scatter_add as scatter_add_base
  
      return scatter_add_base(x0, indices, x1, axis)
  
imports: from __future__ import absolute_import
  from .function_bases import *
  from .None import dtypes
  import nnabla
  import numpy
  from .normalization_functions import *
  from .numpy_compat_functions import *
label_desc: Use image node_id 28 for calling a global function with example usage: scatter_add(x0, indices, x1, axis) and returns: scatter_add_base