class_docstr: .. include:: /global.rst
  
  Please refer to |sobol| for details on this algorithm.
docstr: Generates a Sobol sequence.
  
  :param m: the number of dimensions (our implementation supports up to 40)
  :type m: int
  :param n: the length of the sequence to generate
  :type n: int
  :param skip: the number of initial elements in the sequence to skip
  :type skip: int
  :returns: a list of length n containing m-dimensional points of the Sobol sequence
docstr_tok: ["Generates","a","Sobol","sequence",".",":","param","m",":","the","number","of","dimensions","(","our","implementation","supports","up","to","40",")",":","type","m",":","int",":","param","n",":","the","length","of","the","sequence","to","generate",":","type","n",":","int",":","param","skip",":","the","number","of","initial","elements","in","the","sequence","to","skip",":","type","skip",":","int",":","returns",":","a","list","of","length","n","containing","m-dimensional","points","of","the","Sobol","sequence"]
code: def i4_sobol_generate(m, n, skip):
      """Generates a Sobol sequence.
  
      :param m: the number of dimensions (our implementation supports up to 40)
      :type m: int
      :param n: the length of the sequence to generate
      :type n: int
      :param skip: the number of initial elements in the sequence to skip
      :type skip: int
      :returns: a list of length n containing m-dimensional points of the Sobol sequence
  
      """
  
      r = [
          Sobol.i4_sobol(m, seed)[0] for seed in irange(skip, skip + n)
      ]
      return r
  
imports: import math
  import operator
  import random
  import array
  import functools
  from ..functions import static_key_order
  from .solver_registry import register_solver
  from .util import Solver, _copydoc, uniform_in_bounds
  from .None import util
label_desc: Use image node_id 10 for calling the Sobol obj's underlying member method code with example usage: obj.i4_sobol_generate(m, n, skip) and returns: r