class_docstr: DropWave objective function.
  
  This class defines the DropWave [1]_ global optimization problem. This is a
  multimodal minimization problem defined as follows:
  
  .. math::
  
      f_{\text{DropWave}}(x) = - \frac{1 + \cos\left(12 \sqrt{\sum_{i=1}^{n}
      x_i^{2}}\right)}{2 + 0.5 \sum_{i=1}^{n} x_i^{2}}
  
  
  with :math:`x_i \in [-5.12, 5.12]` for :math:`i = 1, 2`.
  
  *Global optimum*: :math:`f(x) = -1` for :math:`x = [0, 0]`
  
  .. [1] Gavana, A. Global Optimization Benchmarks and AMPGO retrieved 2015
code: def fun(self, x, *args):
      self.nfev += 1
  
      norm_x = sum(x**2)
      return -(1 + cos(12 * sqrt(norm_x))) / (0.5 * norm_x + 2)
  
imports: import numpy
  from numpy import abs, cos, exp, arange, pi, sin, sqrt, sum, zeros, tanh
  from numpy.testing import assert_almost_equal
  from .go_benchmark import Benchmark
label_desc: Use image node_id 2 for calling the DropWave obj's underlying member method code with example usage: obj.fun(x) and returns: unknown