code: def _setup_input_slicers(a_shape, input_shape):
      """This function returns two slicers that are to be used to
      copy the data from the input array to the FFTW object internal
      array, which can then be passed to _FFTWWrapper:
  
      ``(update_input_array_slicer, FFTW_array_slicer)``
  
      On calls to :class:`~pyfftw.builders._utils._FFTWWrapper` objects,
      the input array is copied in as:
  
      ``FFTW_array[FFTW_array_slicer] = input_array[update_input_array_slicer]``
      """
  
      # default the slicers to include everything
      update_input_array_slicer = [slice(None)] * len(a_shape)
      FFTW_array_slicer = [slice(None)] * len(a_shape)
  
      # iterate over each dimension and modify the slicer and FFTW dimension
      for axis in range(len(a_shape)):
          if a_shape[axis] > input_shape[axis]:
              update_input_array_slicer[axis] = slice(
                  0, input_shape[axis]
              )
  
          elif a_shape[axis] < input_shape[axis]:
              FFTW_array_slicer[axis] = slice(0, a_shape[axis])
              update_input_array_slicer[axis] = slice(0, a_shape[axis])
  
          else:
              # If neither of these, we use the whole dimension.
              update_input_array_slicer[axis] = slice(0, a_shape[axis])
  
      return tuple(update_input_array_slicer), tuple(FFTW_array_slicer)
  
file_path: py-fftw/pyfftw/builders/_utils.py
imports: import multiprocessing
  import pyfftw
  import numpy
  import warnings
  from ..None import _threading_type
  from ..None import config
label_desc: Use image node_id 5 for calling a global function with example usage: _setup_input_slicers(a_shape, input_shape) and returns: tuple,  tuple