code: def _compute_multi_p_norm(
      d,
      k,
      idx,
      p_norm,
      T,
      m,
      excl_zone,
      T_A_subseq_isfinite,
      T_B_subseq_isfinite,
      p,
      p_norm_even,
      p_norm_odd,
      p_norm_first,
  ):
      """
      A Numba JIT-compiled version of non-normalized (i.e., without z-normalization)
      mSTOMP for parallel computation of the multi-dimensional distance profile
  
      Parameters
      ----------
      d : int
          The total number of dimensions in `T`
  
      k : int
          The total number of sliding windows to iterate over
  
      idx : int
          The row index in `T`
  
      p_norm : numpy.ndarray
          The output p_norm
  
      T : numpy.ndarray
          The time series or sequence for which to compute the matrix profile
  
      m : int
          Window size
  
      excl_zone : int
          The half width for the exclusion zone relative to the current
          sliding window
  
      T_A_subseq_isfinite : numpy.ndarray
          A boolean array that indicates whether a subsequence in `T_A` contains a
          `np.nan`/`np.inf` value (False)
  
      T_B_subseq_isfinite : numpy.ndarray
          A boolean array that indicates whether a subsequence in `T_B` contains a
          `np.nan`/`np.inf` value (False)
  
      p : float
          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.
  
      p_norm_even : numpy.ndarray
          The even input p-norm array between some query sequence,`Q`, and
          time series, `T`
  
      p_norm_odd : numpy.ndarray
          The odd input p-norm array between some query sequence,`Q`, and
          time series, `T`
  
      p_norm_first : numpy.ndarray
          The p-norm between the first query sequence,`Q`, and time series, `T`
  
      Returns
      -------
      None
  
      Notes
      -----
      `DOI: 10.1109/ICDM.2017.66 \
      <https://www.cs.ucr.edu/~eamonn/Motif_Discovery_ICDM.pdf>`__
  
      See mSTAMP Algorithm
      """
      for i in range(d):
          # Numba's prange requires incrementing a range by 1 so replace
          # `for j in range(k-1,0,-1)` with its incrementing compliment
          for rev_j in prange(1, k):
              j = k - rev_j
              # GPU Stomp Parallel Implementation with Numba
              # DOI: 10.1109/ICDM.2016.0085
              # See Figure 5
              if idx % 2 == 0:
                  # Even
                  p_norm_even[i, j] = (
                      p_norm_odd[i, j - 1]
                      - abs(T[i, idx - 1] - T[i, j - 1]) ** p
                      + abs(T[i, idx + m - 1] - T[i, j + m - 1]) ** p
                  )
              else:
                  # Odd
                  p_norm_odd[i, j] = (
                      p_norm_even[i, j - 1]
                      - abs(T[i, idx - 1] - T[i, j - 1]) ** p
                      + abs(T[i, idx + m - 1] - T[i, j + m - 1]) ** p
                  )
  
          if idx % 2 == 0:
              p_norm_even[i, 0] = p_norm_first[i, idx]
              if not T_B_subseq_isfinite[i, idx]:
                  p_norm[i] = np.inf
              else:
                  p_norm[i] = p_norm_even[i]
          else:
              p_norm_odd[i, 0] = p_norm_first[i, idx]
              if not T_B_subseq_isfinite[i, idx]:
                  p_norm[i] = np.inf
              else:
                  p_norm[i] = p_norm_odd[i]
  
          p_norm[i][~(T_A_subseq_isfinite[i])] = np.inf
          p_norm[i][p_norm[i] < config.STUMPY_P_NORM_THRESHOLD] = 0
  
      core._apply_exclusion_zone(p_norm, idx, excl_zone, np.inf)
  
file_path: stumpy/stumpy/maamp.py
imports: from functools import partial
  import numpy
  from numba import njit, prange
  from .None import config, core
label_desc: Use image node_id 9 for calling a global function with example usage: _compute_multi_p_norm(d, k, idx, p_norm, T, m, excl_zone, T_A_subseq_isfinite, T_B_subseq_isfinite, p, p_norm_even, p_norm_odd, p_norm_first) without return types