docs: def _ncc_c_2dim(x, y):
      """
      Variant of NCCc that operates with 2 dimensional X arrays and 1 dimensional
      y vector
  
      Returns a 2 dimensional array of normalized fourier transforms
      """
      den = np.array(norm(x, axis=1) * norm(y))
      den[den == 0] = np.Inf
      x_len = x.shape[-1]
      fft_size = 1 << (2*x_len-1).bit_length()
      cc = ifft(fft(x, fft_size) * np.conj(fft(y, fft_size)))
      cc = np.concatenate((cc[:,-(x_len-1):], cc[:,:x_len]), axis=1)
      return np.real(cc) / den[:, np.newaxis]