docstr: sobol.cc by Frances Kuo and Stephen Joe translated to Python 3 by
  Carl Sandrock 2016-03-31
  
  The original program is available and described at
  http://web.maths.unsw.edu.au/~fkuo/sobol/
docstr_tok: ["sobol.cc","by","Frances","Kuo","and","Stephen","Joe","translated","to","Python","3","by","Carl","Sandrock","2016-03-31","The","original","program","is","available","and","described","at","http",":","\/\/web.maths.unsw.edu.au\/~fkuo\/sobol\/"]
code: def sobol_points_10k(self, N, D):
      """
      sobol.cc by Frances Kuo and Stephen Joe translated to Python 3 by
      Carl Sandrock 2016-03-31
  
      The original program is available and described at
      http://web.maths.unsw.edu.au/~fkuo/sobol/
      """
      import gzip
      import os
  
      path = os.path.join(
          os.path.dirname(__file__), "_shgo_lib", "sobol_vec.gz"
      )
      f = gzip.open(path, "rb")
      unsigned = "uint64"
      # swallow header
      next(f)
  
      L = int(np.log(N) // np.log(2.0)) + 1
  
      C = np.ones(N, dtype=unsigned)
      for i in range(1, N):
          value = i
          while value & 1:
              value >>= 1
              C[i] += 1
  
      points = np.zeros((N, D), dtype="double")
  
      # XXX: This appears not to set the first element of V
      V = np.empty(L + 1, dtype=unsigned)
      for i in range(1, L + 1):
          V[i] = 1 << (32 - i)
  
      X = np.empty(N, dtype=unsigned)
      X[0] = 0
      for i in range(1, N):
          X[i] = X[i - 1] ^ V[C[i - 1]]
          points[i, 0] = X[i] / 2**32
  
      for j in range(1, D):
          F_int = [int(item) for item in next(f).strip().split()]
          (d, s, a), m = F_int[:3], [0] + F_int[3:]
  
          if L <= s:
              for i in range(1, L + 1):
                  V[i] = m[i] << (32 - i)
          else:
              for i in range(1, s + 1):
                  V[i] = m[i] << (32 - i)
              for i in range(s + 1, L + 1):
                  V[i] = V[i - s] ^ (
                      V[i - s] >> np.array(s, dtype=unsigned)
                  )
                  for k in range(1, s):
                      V[i] ^= np.array(
                          (((a >> (s - 1 - k)) & 1) * V[i - k]),
                          dtype=unsigned,
                      )
  
          X[0] = 0
          for i in range(1, N):
              X[i] = X[i - 1] ^ V[C[i - 1]]
              points[i, j] = X[i] / 2**32  # *** the actual points
  
      f.close()
      return points
  
imports: from __future__ import division, print_function, absolute_import
  import numpy
  import time
  import logging
  import warnings
  from scipy import spatial
  from scipy.optimize import OptimizeResult, minimize
  from scipy.optimize._shgo_lib import sobol_seq
  from scipy.optimize._shgo_lib.triangulation import Complex
label_desc: Use image node_id 29 for calling the SHGO obj's underlying member method code with example usage: obj.sobol_points_10k(N, D) and returns: points