code: def _lower_bound_yi_x_y(x, x_min, x_max, y, y_min, y_max):
      if x_max >= y_max:
          if x_min < y_min:
              sum1 = np.sum(np.square(x[x > y_max] - y_max))
              sum2 = np.sum(np.square(x[x < y_min] - y_min))
              return sqrt(sum1 + sum2)
          elif x_min > y_max:
              return sqrt(
                  max(
                      np.sum(np.square(x - y_max)),
                      np.sum(np.square(y - x_min)),
                  )
              )
          else:
              sum1 = np.sum(np.square(x[x > y_max] - y_max))
              sum2 = np.sum(np.square(y[y < x_min] - x_min))
              return sqrt(sum1 + sum2)
      else:
          if y_min < x_min:
              sum1 = np.sum(np.square(y[y > x_max] - x_max))
              sum2 = np.sum(np.square(y[y < x_min] - x_min))
              return sqrt(sum1 + sum2)
          elif y_min > x_max:
              return sqrt(
                  max(
                      np.sum(np.square(y - x_max)),
                      np.sum(np.square(x - y_min)),
                  )
              )
          else:
              sum1 = np.sum(np.square(y[y > x_max] - x_max))
              sum2 = np.sum(np.square(x[x < y_min] - y_min))
              return sqrt(sum1 + sum2)
  
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 2 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: sqrt, sqrt, sqrt, sqrt, sqrt, sqrt