class_docstr: Generates a new quasirandom Sobol' vector with each call.
  
  Parameters
  ----------
  skip : int
      Skipped seed number.
  
  randomize : bool, default=False
      When set to True, random shift is applied.
  
  Notes
  -----
  Sobol' sequences [1]_ provide :math:`n=2^m` low discrepancy points in
  :math:`[0,1)^{dim}`. Scrambling them makes them suitable for singular
  integrands, provides a means of error estimation, and can improve their
  rate of convergence.
  
  There are many versions of Sobol' sequences depending on their
  'direction numbers'. Here, the maximum number of dimension is 40.
  
  The routine adapts the ideas of Antonov and Saleev [2]_.
  
  .. warning::
  
     Sobol' sequences are a quadrature rule and they lose their balance
     properties if one uses a sample size that is not a power of 2, or skips
     the first point, or thins the sequence [5]_.
  
     If :math:`n=2^m` points are not enough then one should take :math:`2^M`
     points for :math:`M>m`. When scrambling, the number R of independent
     replicates does not have to be a power of 2.
  
     Sobol' sequences are generated to some number :math:`B` of bits. Then
     after :math:`2^B` points have been generated, the sequence will repeat.
     Currently :math:`B=30`.
  
  References
  ----------
  .. [1] I. M. Sobol. The distribution of points in a cube and the accurate
     evaluation of integrals. Zh. Vychisl. Mat. i Mat. Phys., 7:784-802,
     1967.
  
  .. [2] Antonov, Saleev,
     USSR Computational Mathematics and Mathematical Physics,
     Volume 19, 1980, pages 252 - 256.
  
  .. [3] Paul Bratley, Bennett Fox,
     Algorithm 659:
     Implementing Sobol's Quasirandom Sequence Generator,
     ACM Transactions on Mathematical Software,
     Volume 14, Number 1, pages 88-100, 1988.
  
  .. [4] Bennett Fox,
     Algorithm 647:
     Implementation and Relative Efficiency of Quasirandom
     Sequence Generators,
  
  .. [5] Art B. Owen. On dropping the first Sobol' point. arXiv 2008.08051,
     2020.
code: def __init__(self, skip=0, randomize=True):
      if not (skip & (skip - 1) == 0):
          raise ValueError(
              "The balance properties of Sobol' points require"
              " skipping a power of 2."
          )
      if skip != 0:
          warnings.warn(
              f"{skip} points have been skipped: "
              f"{skip} points can be generated before the "
              f"sequence repeats."
          )
      self.skip = skip
  
      self.num_generated = 0
      self.randomize = randomize
  
      self.dim_max = 40
      self.log_max = 30
      self.atmost = 2**self.log_max - 1
      self.lastq = None
      self.maxcol = None
      self.poly = None
      self.recipd = None
      self.seed_save = -1
      self.v = np.zeros((self.dim_max, self.log_max))
      self.dim_num_save = -1
  
file_path: scikit-optimize/skopt/sampler/sobol.py
imports: from __future__ import division
  import warnings
  import numpy
  from .base import InitialPointGenerator
  from ..space import Space
  from sklearn.utils import check_random_state
label_desc: Use image node_id 1 to create a new Sobol object from inherited base classes: InitialPointGenerator with example: obj = Sobol(skip, randomize)