class_docstr: Corana objective function.
  
  This class defines the Corana [1]_ global optimization problem. This
  is a multimodal minimization problem defined as follows:
  
  .. math::
  
      f_{\text{Corana}}(x) = \begin{cases} \sum_{i=1}^n 0.15 d_i
      [z_i - 0.05\textrm{sgn}(z_i)]^2 & \textrm{if }|x_i-z_i| < 0.05 \\
      d_ix_i^2 & \textrm{otherwise}\end{cases}
  
  
  Where, in this exercise:
  
  .. math::
  
      z_i = 0.2 \lfloor |x_i/s_i|+0.49999\rfloor\textrm{sgn}(x_i),
      d_i=(1,1000,10,100, ...)
  
  
  with :math:`x_i \in [-5, 5]` for :math:`i = 1, ..., 4`.
  
  *Global optimum*: :math:`f(x) = 0` for :math:`x_i = 0` for
  :math:`i = 1, ..., 4`
  
  ..[1] Gavana, A. Global Optimization Benchmarks and AMPGO retrieved 2015
code: def __init__(self, dimensions=4):
      Benchmark.__init__(self, dimensions)
  
      self._bounds = list(zip([-5.0] * self.N, [5.0] * self.N))
  
      self.global_optimum = [[0 for _ in range(self.N)]]
      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 Corana object from inherited base classes: Benchmark with example: obj = Corana(dimensions)