code: def prescraamp(T_A, m, T_B=None, s=None, p=2.0, k=1):
      # this function should be modified so that it can return top-k matrix profile
      """
      A convenience wrapper around the Numba JIT-compiled parallelized `_prescraamp`
      function which computes the approximate (top-k) matrix profile according to
      the non-normalized (i.e., without z-normalization) preSCRIMP algorithm
  
      Parameters
      ----------
      T_A : numpy.ndarray
          The time series or sequence for which to compute the matrix profile
  
      m : int
          Window size
  
      T_B : numpy.ndarray, default None
          The time series or sequence that will be used to annotate T_A. For every
          subsequence in T_A, its nearest neighbor in T_B will be recorded.
  
      s : int, default None
          The sampling interval that defaults to
          `int(np.ceil(m / config.STUMPY_EXCL_ZONE_DENOM))`
  
      p : float, default 2.0
          The p-norm to apply for computing the Minkowski distance. Minkowski distance is
          typically used with `p` being 1 or 2, which correspond to the Manhattan distance
          and the Euclidean distance, respectively.
  
      k : int, default 1
          The number of top `k` smallest distances used to construct the matrix profile.
          Note that this will increase the total computational time and memory usage
          when k > 1.
  
      Returns
      -------
      P : numpy.ndarray
          The (top-k) matrix profile. When k = 1 (default), this is a 1D array
          consisting of the matrix profile. When k > 1, the output is a 2D array that
          has exactly `k` columns consisting of the top-k matrix profile.
  
      I : numpy.ndarray
          The (top-k) matrix profile indices. When k = 1 (default), this is a 1D array
          consisting of the matrix profile indices. When k > 1, the output is a 2D
          array that has exactly `k` columns consisting of the top-k matrix profile
          indices.
  
      Notes
      -----
      `DOI: 10.1109/ICDM.2018.00099 \
      <https://www.cs.ucr.edu/~eamonn/SCRIMP_ICDM_camera_ready_updated.pdf>`__
  
      See Algorithm 2
      """
      (
          T_A,
          T_B,
          T_A_subseq_isfinite,
          T_B_subseq_isfinite,
          indices,
          s,
          excl_zone,
      ) = _preprocess_prescraamp(T_A, m, T_B=T_B, s=s)
  
      P, I = _prescraamp(
          T_A,
          T_B,
          m,
          T_A_subseq_isfinite,
          T_B_subseq_isfinite,
          p,
          indices,
          s,
          excl_zone,
          k,
      )
  
      if k == 1:
          return P.flatten().astype(np.float64), I.flatten().astype(
              np.int64
          )
      else:
          return P, I
  
file_path: stumpy/stumpy/scraamp.py
imports: import numba
  import numpy
  from numba import njit, prange
  from .None import config, core
  from .aamp import _aamp
label_desc: Use image node_id 4 for calling a global function with example usage: prescraamp(T_A, m, T_B, s, p, k) and returns: P,  I, P,  I