docstr: ivy.Array instance method variant of ivy.scatter_flat. This method
  simply wraps the function, and so the docstring for ivy.scatter_flat
  also applies to this method with minimal changes.
  
  Parameters
  ----------
  self
      input array containing the indices where the new values will occupy
  updates
      Values for the new array to hold.
  size
      The size of the result. Default is `None`, in which case tensor
      argument out must be provided.
  reduction
      The reduction method for the scatter, one of 'sum', 'min', 'max' or
      'replace'
  out
      optional output array, for writing the result to. It must have a shape that
      the inputs broadcast to.
  
  Returns
  -------
  ret
      New array of given shape, with the values scattered at the indices.
  
  Examples
  --------
  With :class:`ivy.Array` input:
  >>> indices = ivy.array([0, 0, 1, 0, 2, 2, 3, 3])
  >>> updates = ivy.array([5, 1, 7, 2, 3, 2, 1, 3])
  >>> size = 8
  >>> out = indices.scatter_flat(updates, size=size)
  >>> print(out)
  ivy.array([2, 7, 2, 3, 0, 0, 0, 0])
  
  
  With :class:`ivy.Array` input:
  >>> indices = ivy.array([0, 0, 1, 0, 2, 2, 3, 3])
  >>> updates = ivy.array([5, 1, 7, 2, 3, 2, 1, 3])
  >>> out = ivy.array([0, 0, 0, 0, 0, 0, 0, 0])
  >>> indices.scatter_flat(updates, out=out)
  >>> print(out)
  ivy.array([8, 7, 5, 4, 0, 0, 0, 0])
docstr_tok: ["ivy.Array","instance","method","variant","of","ivy.scatter_flat",".","This","method","simply","wraps","the","function",",","and","so","the","docstring","for","ivy.scatter_flat","also","applies","to","this","method","with","minimal","changes",".","Parameters","--","--","--","--","--","self","input","array","containing","the","indices","where","the","new","values","will","occupy","updates","Values","for","the","new","array","to","hold",".","size","The","size","of","the","result",".","Default","is","`","None","`",",","in","which","case","tensor","argument","out","must","be","provided",".","reduction","The","reduction","method","for","the","scatter",",","one","of","'sum","'",",","'min","'",",","'max","'","or","'replace'","out","optional","output","array",",","for","writing","the","result","to",".","It","must","have","a","shape","that","the","inputs","broadcast","to",".","Returns","--","--","--","-","ret","New","array","of","given","shape",",","with","the","values","scattered","at","the","indices",".","Examples","--","--","--","--","With",":","class",":","`","ivy.Array","`","input",":",">",">",">","indices","=","ivy.array","(","[","0",",","0",",","1",",","0",",","2",",","2",",","3",",","3","]",")",">",">",">","updates","=","ivy.array","(","[","5",",","1",",","7",",","2",",","3",",","2",",","1",",","3","]",")",">",">",">","size","=","8",">",">",">","out","=","indices.scatter_flat","(","updates",",","size=size",")",">",">",">","print","(","out",")","ivy.array","(","[","2",",","7",",","2",",","3",",","0",",","0",",","0",",","0","]",")","With",":","class",":","`","ivy.Array","`","input",":",">",">",">","indices","=","ivy.array","(","[","0",",","0",",","1",",","0",",","2",",","2",",","3",",","3","]",")",">",">",">","updates","=","ivy.array","(","[","5",",","1",",","7",",","2",",","3",",","2",",","1",",","3","]",")",">",">",">","out","=","ivy.array","(","[","0",",","0",",","0",",","0",",","0",",","0",",","0",",","0","]",")",">",">",">","indices.scatter_flat","(","updates",",","out=out",")",">",">",">","print","(","out",")","ivy.array","(","[","8",",","7",",","5",",","4",",","0",",","0",",","0",",","0","]",")"]
code: def scatter_flat(
      self: ivy.Array,
      updates: Union[ivy.Array, ivy.NativeArray],
      /,
      *,
      size: Optional[int] = None,
      reduction: str = "sum",
      out: Optional[ivy.Array] = None,
  ) -> ivy.Array:
      """ivy.Array instance method variant of ivy.scatter_flat. This method
      simply wraps the function, and so the docstring for ivy.scatter_flat
      also applies to this method with minimal changes.
  
      Parameters
      ----------
      self
          input array containing the indices where the new values will occupy
      updates
          Values for the new array to hold.
      size
          The size of the result. Default is `None`, in which case tensor
          argument out must be provided.
      reduction
          The reduction method for the scatter, one of 'sum', 'min', 'max' or
          'replace'
      out
          optional output array, for writing the result to. It must have a shape that
          the inputs broadcast to.
  
      Returns
      -------
      ret
          New array of given shape, with the values scattered at the indices.
  
      Examples
      --------
      With :class:`ivy.Array` input:
      >>> indices = ivy.array([0, 0, 1, 0, 2, 2, 3, 3])
      >>> updates = ivy.array([5, 1, 7, 2, 3, 2, 1, 3])
      >>> size = 8
      >>> out = indices.scatter_flat(updates, size=size)
      >>> print(out)
      ivy.array([2, 7, 2, 3, 0, 0, 0, 0])
  
  
      With :class:`ivy.Array` input:
      >>> indices = ivy.array([0, 0, 1, 0, 2, 2, 3, 3])
      >>> updates = ivy.array([5, 1, 7, 2, 3, 2, 1, 3])
      >>> out = ivy.array([0, 0, 0, 0, 0, 0, 0, 0])
      >>> indices.scatter_flat(updates, out=out)
      >>> print(out)
      ivy.array([8, 7, 5, 4, 0, 0, 0, 0])
      """
      return ivy.scatter_flat(
          self, updates, size=size, reduction=reduction, out=out
      )
  
imports: import abc
  import numpy
  from numbers import Number
  from typing import Any, Iterable, Union, Optional, Dict, Callable, List, Tuple
  import ivy
label_desc: Use image node_id 31 for calling the _ArrayWithGeneral obj's underlying member method code with example usage: obj.scatter_flat() and returns: ivy