code: def _maybe_overlapping_memory(shape, strides):
      """Returns bool value indicating the array with such shape and strides
      might have overlapping memory.
  
      Args:
      shape (tuple of int): The shape of output.
      strides (tuple of int): The strides of output, given in the unit of steps.
      storage_offset (int):
          The offset between the head of allocated memory and the pointer of
          first element, given in the unit of steps.
  
      Returns:
          bool: Existence of the overlapping memory
      """
      max_ptr_in_slice = 0
      for stride, size in sorted(zip([abs(s) for s in strides], shape)):
          if stride <= max_ptr_in_slice:
              return True
          max_ptr_in_slice += stride * (size - 1)
      return False
  
imports: import numpy
  import six
  from chainer import backend
  from chainer.backends import cuda
  from chainer import function_node
  from chainer.utils import type_check
label_desc: Use image node_id 3 for calling a global function with example usage: _maybe_overlapping_memory(shape, strides) and returns: False, True