class_docstr: Cube objective function.
  
  This class defines the Cube global optimization problem. This
  is a multimodal minimization problem defined as follows:
  
  .. math::
  
      f_{\text{Cube}}(x) = 100(x_2 - x_1^3)^2 + (1 - x1)^2
  
  
  Here, :math:`n` represents the number of dimensions and :math:`x_i \in [-10, 10]`
  for :math:`i=1,...,N`.
  
  *Global optimum*: :math:`f(x_i) = 0.0` for :math:`x = [1, 1]`
  
  .. [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#41 has the wrong solution.
code: def __init__(self, dimensions=2):
      Benchmark.__init__(self, dimensions)
  
      self._bounds = list(zip([-10.0] * self.N, [10.0] * self.N))
      self.custom_bounds = ([0, 2], [0, 2])
  
      self.global_optimum = [[1.0, 1.0]]
      self.fglob = 0.0
  
imports: import numpy
  from numpy import abs, asarray, cos, exp, floor, pi, sign, sin, sqrt, sum, size, tril, isnan, atleast_2d, repeat
  from numpy.testing import assert_almost_equal
  from .go_benchmark import Benchmark
label_desc: Use image node_id 1 to create a new Cube object from inherited base classes: Benchmark with example: obj = Cube(dimensions)