class_docstr: Giunta objective function.
  
  This class defines the Giunta [1]_ global optimization problem. This
  is a multimodal minimization problem defined as follows:
  
  .. math::
  
      f_{\text{Giunta}}({x}) = 0.6 + \sum_{i=1}^{n} \left[\sin^{2}\left(1
      - \frac{16}{15} x_i\right) - \frac{1}{50} \sin\left(4
      - \frac{64}{15} x_i\right) - \sin\left(1
      - \frac{16}{15} x_i\right)\right]
  
  
  with :math:`x_i \in [-1, 1]` for :math:`i = 1, 2`.
  
  *Global optimum*: :math:`f(x) = 0.06447042053690566` for
  :math:`x = [0.4673200277395354, 0.4673200169591304]`
  
  .. [1] Jamil, M. & Yang, X.-S. A Literature Survey of Benchmark Functions
  For Global Optimization Problems Int. Journal of Mathematical Modelling
  and Numerical Optimisation, 2013, 4, 150-194.
  
  TODO Jamil has the wrong fglob.  I think there is a lower value.
code: def __init__(self, dimensions=2):
      Benchmark.__init__(self, dimensions)
  
      self._bounds = list(zip([-1.0] * self.N, [1.0] * self.N))
  
      self.global_optimum = [[0.4673200277395354, 0.4673200169591304]]
      self.fglob = 0.06447042053690566
  
imports: import numpy
  from numpy import abs, sin, cos, exp, floor, log, arange, prod, sqrt, sum
  from .go_benchmark import Benchmark
label_desc: Use image node_id 1 to create a new Giunta object from inherited base classes: Benchmark with example: obj = Giunta(dimensions)