code: def _lower_bound_yi_X_Y(X, X_min, X_max, Y, Y_min, Y_max):
      n_samples_X, _ = X.shape
      n_samples_Y, _ = Y.shape
      X_yi = np.empty((n_samples_X, n_samples_Y))
      for i in prange(n_samples_X):
          for j in prange(n_samples_Y):
              X_yi[i, j] = _lower_bound_yi_x_y(
                  X[i], X_min[i], X_max[i], Y[j], Y_min[j], Y_max[j]
              )
      return X_yi
  
file_path: pyts/pyts/metrics/lower_bounds.py
imports: import numpy
  from math import sqrt
  from numba import njit, prange
  from sklearn.utils import check_array
label_desc: Use image node_id 3 for calling a global function with example usage: _lower_bound_yi_X_Y(X, X_min, X_max, Y, Y_min, Y_max) and returns: X_yi