class_docstr: gSobol function
  
  :param a: one-dimensional array containing the coefficients of the function.
  :param sd: standard deviation, to generate noisy evaluations of the function.
code: def __init__(self, a, bounds=None, sd=None):
      self.a = a
      self.input_dim = len(self.a)
  
      if bounds is None:
          self.bounds = [(-4, 6)] * self.input_dim
      else:
          self.bounds = bounds
  
      if not (self.a > 0).all():
          return "Wrong vector of coefficients, they all should be positive"
      self.S_coef = (1 / (3 * ((1 + self.a) ** 2))) / (
          np.prod(1 + 1 / (3 * ((1 + self.a) ** 2))) - 1
      )
      if sd == None:
          self.sd = 0
      else:
          self.sd = sd
  
file_path: GPyOpt/GPyOpt/objective_examples/experimentsNd.py
imports: import numpy
  from ..util.general import reshape
label_desc: Use image node_id 1 to create a new gSobol object  with example: obj = gSobol(a, bounds, sd)