code: def sakoe_chiba(
      x: np.ndarray, y: np.ndarray, window: float
  ) -> np.ndarray:
      """Create a sakoe chiba lower bounding window on a matrix.
  
      Parameters
      ----------
      x: np.ndarray (2d array)
          First time series.
      y: np.ndarray (2d array)
          Second time series.
      window: float
          Float that is the size of the window. Must be between 0 and 1.
  
      Returns
      -------
      np.ndarray (2d of size mxn where m is len(x) and n is len(y)).
          Sakoe Chiba bounding matrix where the values inside the bound are finite
          values (0s) and outside the bounds are infinity (non finite).
  
      Raises
      ------
      ValueError
          If the sakoe_chiba_window_radius is not an integer.
      """
      if window < 0 or window > 1:
          raise ValueError("Window must between 0 and 1")
  
      x_size = x.shape[1]
      y_size = y.shape[1]
      bounding_matrix = np.full((x_size, y_size), np.inf)
      sakoe_chiba_window_radius = ((x_size / 100) * window) * 100
  
      x_upper_line_values = np.interp(
          list(range(x_size)),
          [0, x_size - 1],
          [
              0 - sakoe_chiba_window_radius,
              y_size - sakoe_chiba_window_radius - 1,
          ],
      )
      x_lower_line_values = np.interp(
          list(range(x_size)),
          [0, x_size - 1],
          [
              0 + sakoe_chiba_window_radius,
              y_size + sakoe_chiba_window_radius - 1,
          ],
      )
  
      bounding_matrix = create_shape_on_matrix(
          bounding_matrix, x_upper_line_values, x_lower_line_values
      )
  
      return bounding_matrix
  
file_path: sktime/sktime/distances/_lower_bounding_numba.py
imports: import math
  from typing import Union
  import numpy
  from sktime.utils.numba.njit import njit
label_desc: Use image node_id 4 for calling a global function with example usage: sakoe_chiba(x, y, window) and returns: bounding_matrix