class_docstr: AbstractSolver base class for mystic optimizers.
      
class_docstr_tok: ["AbstractSolver","base","class","for","mystic","optimizers","."]
docstr: set the evaluation limits
  
  Args:
      iterscale (int, default=10): scale factor for iteration upper limit
      evalscale (int, default=1000): scale factor for evaluation upper limit
  
  Notes:
      - ``iterscale`` and ``evalscale`` are used to set the maximum iteration
        and evaluation limits, respectively. The new limit is defined as
        ``limit = (nDim * nPop * scale) + count``, where ``count`` is the number
        of existing iterations or evaluations, respectively.
          
code: def _SetEvaluationLimits(self, iterscale=None, evalscale=None):
      """set the evaluation limits
  
      Args:
          iterscale (int, default=10): scale factor for iteration upper limit
          evalscale (int, default=1000): scale factor for evaluation upper limit
  
      Notes:
          - ``iterscale`` and ``evalscale`` are used to set the maximum iteration
            and evaluation limits, respectively. The new limit is defined as
            ``limit = (nDim * nPop * scale) + count``, where ``count`` is the number
            of existing iterations or evaluations, respectively.
      """
      if iterscale is None:
          iterscale = 10
      if evalscale is None:
          evalscale = 1000
      N = len(self.population[0])  # usually self.nDim
      # if SetEvaluationLimits not applied, use the solver default
      if self._maxiter is None:
          self._maxiter = N * self.nPop * iterscale
      elif self._maxiter == "*":  # (i.e. None, but 'reset counter')
          self._maxiter = (N * self.nPop * iterscale) + self.generations
      if self._maxfun is None:
          self._maxfun = N * self.nPop * evalscale
      elif self._maxfun == "*":
          self._maxfun = (N * self.nPop * evalscale) + self.evaluations
      return
  
imports: import random
  import numpy
  from numpy import inf, shape, asarray, absolute, asfarray, seterr
  from mystic.tools import wrap_function, wrap_nested, wrap_reducer
  from mystic.tools import wrap_bounds, wrap_penalty, reduced
  from klepto import isvalid, validate
  from collections.abc import Callable
label_desc: Use image node_id 29 for calling the AbstractSolver obj's underlying member method code with example usage: obj._SetEvaluationLimits(iterscale, evalscale) without return types