code: def _get_multi_QT(start, T, m):
      """
      Multi-dimensional wrapper to compute the sliding dot product between
      the query, `T[:, start:start+m])` and the time series, `T`.
      Additionally, compute QT for the first window.
  
      Parameters
      ----------
      start : int
          The window index for T_B from which to calculate the QT dot product
  
      T : numpy.ndarray
          The time series or sequence for which to compute the dot product
  
      m : int
          Window size
  
      Returns
      -------
      QT : numpy.ndarray
          Given `start`, return the corresponding multi-dimensional QT
  
      QT_first : numpy.ndarray
          Multi-dimensional QT for the first window
      """
      d = T.shape[0]
      l = T.shape[1] - m + 1
  
      QT = np.empty((d, l), dtype=np.float64)
      QT_first = np.empty((d, l), dtype=np.float64)
  
      for i in range(d):
          QT[i] = core.sliding_dot_product(
              T[i, start : start + m], T[i]
          )
          QT_first[i] = core.sliding_dot_product(T[i, :m], T[i])
  
      return QT, QT_first
  
file_path: stumpy/stumpy/mstump.py
imports: from functools import lru_cache, partial
  import numpy
  from numba import njit, prange
  from scipy.stats import norm
  from .None import config, core
  from .maamp import maamp, maamp_mdl, maamp_multi_distance_profile, maamp_subspace
label_desc: Use image node_id 9 for calling a global function with example usage: _get_multi_QT(start, T, m) and returns: QT,  QT_first