code: def schaffer2(x):
      """Schaffer N.2 objective function
  
      Only takes two dimensions and has a global minimum at
      :code:`f([0,0])`. Its coordinates are bounded within
      :code:`[-100,100]`.
  
      Parameters
      ----------
      x : numpy.ndarray
          set of inputs of shape :code:`(n_particles, dimensions)`
  
      Returns
      -------
      numpy.ndarray
          computed cost of size :code:`(n_particles, )`
  
      Raises
      ------
      IndexError
          When the input dimensions is greater than what the function
          allows
      ValueError
          When the input is out of bounds with respect to the function
          domain
      """
      if not x.shape[1] == 2:
          raise IndexError(
              "Schaffer N. 2 function only takes two-dimensional "
              "input."
          )
      if not np.logical_and(x >= -100, x <= 100).all():
          raise ValueError(
              "Input for Schaffer function must be within "
              "[-100, 100]."
          )
  
      x_ = x[:, 0]
      y_ = x[:, 1]
      j = 0.5 + (
          (np.sin(x_**2.0 - y_**2.0) ** 2.0 - 0.5)
          / ((1 + 0.001 * (x_**2.0 + y_**2.0)) ** 2.0)
      )
  
      return j
  
file_path: pyswarms/pyswarms/utils/functions/single_obj.py
imports: import numpy
label_desc: Use image node_id 15 for calling a global function with example usage: schaffer2(x) and returns: j