code: def latin_hc_indices(dim, num_samples):
      """Obtains indices for Latin Hyper-cube sampling."""
      index_set = [list(range(num_samples))] * dim
      lhs_indices = []
      for i in range(num_samples):
          curr_idx_idx = np.random.randint(num_samples - i, size=dim)
          curr_idx = [index_set[j][curr_idx_idx[j]] for j in range(dim)]
          index_set = [
              index_set[j][: curr_idx_idx[j]]
              + index_set[j][curr_idx_idx[j] + 1 :]
              for j in range(dim)
          ]
          lhs_indices.append(curr_idx)
      return lhs_indices
  
imports: from __future__ import print_function
  from __future__ import division
  from argparse import Namespace
  from datetime import datetime
  from warnings import warn
  import os
  import numpy
  from .general_utils import map_to_bounds
  from .doo import DOOFunction, pdoo_wrap
label_desc: Use image node_id 11 for calling a global function with example usage: latin_hc_indices(dim, num_samples) and returns: lhs_indices