code: def __overlap_add(y, ytmp, hop_length):
      # numba-accelerated overlap add for inverse stft
      # y is the pre-allocated output buffer
      # ytmp is the windowed inverse-stft frames
      # hop_length is the hop-length of the STFT analysis
  
      n_fft = ytmp.shape[-2]
      N = n_fft
      for frame in range(ytmp.shape[-1]):
          sample = frame * hop_length
          if N > y.shape[-1] - sample:
              N = y.shape[-1] - sample
  
          y[..., sample : (sample + N)] += ytmp[..., :N, frame]
  
imports: from __future__ import annotations
  import warnings
  import numpy
  import scipy
  import scipy.ndimage
  import scipy.signal
  import scipy.interpolate
  from numba import jit
  from .None import convert
  from .fft import get_fftlib
  from .audio import resample
  from .._cache import cache
  from ..None import util
  from ..util.exceptions import ParameterError
  from ..filters import get_window, semitone_filterbank
  from ..filters import window_sumsquare
  from numpy.typing import DTypeLike
  from typing import Any, Callable, Optional, Tuple, List, Union, overload
  from typing_extensions import Literal
  from .._typing import _WindowSpec, _PadMode, _PadModeSTFT, _SequenceLike, _ScalarOrSequence, _ComplexLike_co, _FloatLike_co
label_desc: Use image node_id 3 for calling a global function with example usage: __overlap_add(y, ytmp, hop_length) without return types