class_docstr: Katsuura objective function.
  
  This class defines the Katsuura [1]_ global optimization problem. This is a
  multimodal minimization problem defined as follows:
  
  .. math::
  
      f_{\text{Katsuura}}(x) = \prod_{i=0}^{n-1} \left [ 1 +
      (i+1) \sum_{k=1}^{d} \lfloor (2^k x_i) \rfloor 2^{-k} \right ]
  
  
  Where, in this exercise, :math:`d = 32`.
  
  Here, :math:`n` represents the number of dimensions and 
  :math:`x_i \in [0, 100]` for :math:`i = 1, ..., n`.
  
  *Global optimum*: :math:`f(x) = 1` for :math:`x_i = 0` for
  :math:`i = 1, ..., n`.
  
  .. [1] Adorio, E. MVF - "Multivariate Test Functions Library in C for
  Unconstrained Global Optimization", 2005
  .. [2] Gavana, A. Global Optimization Benchmarks and AMPGO retrieved 2015
  
  TODO: Adorio has wrong global minimum.  Adorio uses round, Gavana docstring
  uses floor, but Gavana code uses round.  We'll use round...
class_docstr_tok: ["Katsuura","objective","function",".","This","class","defines","the","Katsuura","[","1","]","_","global","optimization","problem",".","This","is","a","multimodal","minimization","problem","defined","as","follows",":","..","math",":",":","f_","{","\\text","{","Katsuura","}","}","(","x",")","=","\\prod_","{","i=0","}","^","{","n-1","}","\\left","[","1","+","(","i+1",")","\\sum_","{","k=1","}","^","{","d","}","\\lfloor","(","2^k","x_i",")","\\rfloor","2^","{","-k","}","\\right","]","Where",",","in","this","exercise",",",":","math",":","`","d","=","32","`",".","Here",",",":","math",":","`","n","`","represents","the","number","of","dimensions","and",":","math",":","`","x_i","\\in","[","0",",","100","]","`","for",":","math",":","`","i","=","1",",","...",",","n","`",".","*","Global","optimum","*",":",":","math",":","`","f","(","x",")","=","1","`","for",":","math",":","`","x_i","=","0","`","for",":","math",":","`","i","=","1",",","...",",","n","`",".","..","[","1","]","Adorio",",","E.","MVF","-","``","Multivariate","Test","Functions","Library","in","C","for","Unconstrained","Global","Optimization","''",",","2005","..","[","2","]","Gavana",",","A",".","Global","Optimization","Benchmarks","and","AMPGO","retrieved","2015","TODO",":","Adorio","has","wrong","global","minimum",".","Adorio","uses","round",",","Gavana","docstring","uses","floor",",","but","Gavana","code","uses","round",".","We","'ll","use","round","..."]
code: def __init__(self, dimensions=2):
      Benchmark.__init__(self, dimensions)
  
      self._bounds = list(zip([0.0] * self.N, [100.0] * self.N))
  
      self.global_optimum = [[0.0 for _ in range(self.N)]]
      self.custom_bounds = [(0, 1), (0, 1)]
      self.fglob = 1.0
      self.change_dimensionality = True
  
file_path: scipy/benchmarks/benchmarks/go_benchmark_functions/go_funcs_K.py
imports: from numpy import asarray, atleast_2d, arange, sin, sqrt, prod, sum, round
  from .go_benchmark import Benchmark
label_desc: Use image node_id 1 to create a new Katsuura object from inherited base classes: Benchmark with example: obj = Katsuura(dimensions)