docstr: evaluates Rastrigin's function for a list of coeffs
  
  f(x) = 10 * N + \sum_(i=0)^(N-1) (x_(i)^2 - 10 * \cos(2 * \pi * x_(i)))
  
  Inspect with mystic_model_plotter using::
      mystic.models.rastrigin -b "-5:5:.1, -5:5:.1" -d
  
  The minimum is f(x)=0.0 at x_i=0.0 for all i
code: def function(self, coeffs):
      r"""evaluates Rastrigin's function for a list of coeffs
  
      f(x) = 10 * N + \sum_(i=0)^(N-1) (x_(i)^2 - 10 * \cos(2 * \pi * x_(i)))
  
      Inspect with mystic_model_plotter using::
          mystic.models.rastrigin -b "-5:5:.1, -5:5:.1" -d
  
      The minimum is f(x)=0.0 at x_i=0.0 for all i"""
      return 10.0 * len(coeffs) + sum(
          c * c - 10.0 * cos(2 * pi * c) for c in coeffs
      )
  
imports: from .abstract_model import AbstractFunction
  from math import sin, cos, sqrt, pi, exp
label_desc: Use image node_id 2 for calling the Rastrigin obj's underlying member method code with example usage: obj.function(coeffs) and returns: unknown