code: def bootstrap(
      Y: np.ndarray, M: int, resamples: int, conf_level: float
  ):
      """Compute CIs.
  
      Infers ``N`` from results of sub-sample ``Y`` and re-estimates omega (ω)
      for the above ``N``.
      """
      # Use half of available data each time
      T_data = Y.shape[0]
      n_size = math.ceil(T_data * 0.5)
  
      res_S1 = np.zeros(resamples)
      res_ST = np.zeros(resamples)
      for i in range(resamples):
          sample_idx = np.random.choice(
              T_data, replace=True, size=n_size
          )
          Y_rs = Y[sample_idx]
  
          N = len(Y_rs)
          omega = math.floor((N - 1) / (2 * M))
  
          S1, ST = compute_orders(Y_rs, N, M, omega)
          res_S1[i] = S1
          res_ST[i] = ST
  
      bnd = norm.ppf(0.5 + conf_level / 2.0)
      S1_conf = bnd * res_S1.std(ddof=1)
      ST_conf = bnd * res_ST.std(ddof=1)
      return S1_conf, ST_conf
  
file_path: SALib/src/SALib/analyze/fast.py
imports: import math
  import numpy
  from scipy.stats import norm
  from .None import common_args
  from ..util import read_param_file, ResultDict
label_desc: Use image node_id 3 for calling a global function with example usage: bootstrap(Y, M, resamples, conf_level) and returns: S1_conf,  ST_conf