class_docstr: Hartmann3 objective function.
  
  This class defines the Hartmann3 [1]_ global optimization problem. This is a
  multimodal minimization problem defined as follows:
  
  .. math::
  
      f_{\text{Hartmann3}}(x) = -\sum\limits_{i=1}^{4} c_i 
      e^{-\sum\limits_{j=1}^{n}a_{ij}(x_j - p_{ij})^2}
  
  
  Where, in this exercise:
  
  .. math::
  
      \begin{array}{l|ccc|c|ccr}
      \hline
      i & & a_{ij}&  & c_i & & p_{ij} &  \\
      \hline
      1 & 3.0 & 10.0 & 30.0 & 1.0 & 0.3689  & 0.1170 & 0.2673 \\
      2 & 0.1 & 10.0 & 35.0 & 1.2 & 0.4699 & 0.4387 & 0.7470 \\
      3 & 3.0 & 10.0 & 30.0 & 3.0 & 0.1091 & 0.8732 & 0.5547 \\
      4 & 0.1 & 10.0 & 35.0 & 3.2 & 0.03815 & 0.5743 & 0.8828 \\
      \hline
      \end{array}
  
  
  with :math:`x_i \in [0, 1]` for :math:`i = 1, 2, 3`.
  
  *Global optimum*: :math:`f(x) = -3.8627821478` 
  for :math:`x = [0.11461292,  0.55564907,  0.85254697]`
  
  .. [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 #62 has an incorrect coefficient. p[1, 1] should be 0.4387
class_docstr_tok: ["Hartmann3","objective","function",".","This","class","defines","the","Hartmann3","[","1","]","_","global","optimization","problem",".","This","is","a","multimodal","minimization","problem","defined","as","follows",":","..","math",":",":","f_","{","\\text","{","Hartmann3","}","}","(","x",")","=","-\\sum\\limits_","{","i=1","}","^","{","4","}","c_i","e^","{","-\\sum\\limits_","{","j=1","}","^","{","n","}","a_","{","ij","}","(","x_j","-","p_","{","ij","}",")","^2","}","Where",",","in","this","exercise",":","..","math",":",":","\\begin","{","array","}","{","l|ccc|c|ccr","}","\\hline","i","&","&","a_","{","ij","}","&","&","c_i","&","&","p_","{","ij","}","&","\\\\","\\hline","1","&","3.0","&","10.0","&","30.0","&","1.0","&","0.3689","&","0.1170","&","0.2673","\\\\","2","&","0.1","&","10.0","&","35.0","&","1.2","&","0.4699","&","0.4387","&","0.7470","\\\\","3","&","3.0","&","10.0","&","30.0","&","3.0","&","0.1091","&","0.8732","&","0.5547","\\\\","4","&","0.1","&","10.0","&","35.0","&","3.2","&","0.03815","&","0.5743","&","0.8828","\\\\","\\hline","\\end","{","array","}","with",":","math",":","`","x_i","\\in","[","0",",","1","]","`","for",":","math",":","`","i","=","1",",","2",",","3","`",".","*","Global","optimum","*",":",":","math",":","`","f","(","x",")","=","-3.8627821478","`","for",":","math",":","`","x","=","[","0.11461292",",","0.55564907",",","0.85254697","]","`","..","[","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","#","62","has","an","incorrect","coefficient",".","p","[","1",",","1","]","should","be","0.4387"]
code: def fun(self, x, *args):
      self.nfev += 1
  
      XX = np.atleast_2d(x)
      d = sum(self.a * (XX - self.p) ** 2, axis=1)
      return -sum(self.c * exp(-d))
  
imports: import numpy
  from numpy import abs, arctan2, asarray, cos, exp, arange, pi, sin, sqrt, sum
  from .go_benchmark import Benchmark
label_desc: Use image node_id 2 for calling the Hartmann3 obj's underlying member method code with example usage: obj.fun(x) and returns: unknown