class_docstr: Cigar objective function.
  
  This class defines the Cigar [1]_ global optimization problem. This
  is a multimodal minimization problem defined as follows:
  
  .. math::
  
      f_{\text{Cigar}}(x) = x_1^2 + 10^6\sum_{i=2}^{n} x_i^2
  
  
  Here, :math:`n` represents the number of dimensions and :math:`x_i \in
  [-100, 100]` for :math:`i = 1, ..., n`.
  
  *Global optimum*: :math:`f(x) = 0` for :math:`x_i = 0` for
  :math:`i = 1, ..., n`
  
  .. [1] Gavana, A. Global Optimization Benchmarks and AMPGO retrieved 2015
code: def __init__(self, dimensions=2):
      Benchmark.__init__(self, dimensions)
  
      self._bounds = list(zip([-100.0] * self.N, [100.0] * self.N))
      self.custom_bounds = [(-5, 5), (-5, 5)]
  
      self.global_optimum = [[0 for _ in range(self.N)]]
      self.fglob = 0.0
      self.change_dimensionality = True
  
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 Cigar object from inherited base classes: Benchmark with example: obj = Cigar(dimensions)