class_docstr: Class defining mutations, and holding a random state used for random generation.
class_docstr_tok: ["Class","defining","mutations",",","and","holding","a","random","state","used","for","random","generation","."]
docstr: Randomly drawn a normal value, and redraw until it's different after discretization by the quantiles
  1/arity, 2/arity, ..., (arity-1)/arity.
docstr_tok: ["Randomly","drawn","a","normal","value",",","and","redraw","until","it","'s","different","after","discretization","by","the","quantiles","1\/arity",",","2\/arity",",","...",",","(","arity-1",")","\/arity","."]
code: def significantly_mutate(self, v: float, arity: int):
      """Randomly drawn a normal value, and redraw until it's different after discretization by the quantiles
      1/arity, 2/arity, ..., (arity-1)/arity.
      """
      if arity > 499:
          return self.random_state.normal(0.0, 1.0)
      w = self.random_state.normal(0.0, 1.0)
      assert arity > 1
      while discretization.threshold_discretization(
          [w], arity
      ) == discretization.threshold_discretization([v], arity):
          w = self.random_state.normal(0.0, 1.0)
      return w
  
file_path: nevergrad/nevergrad/optimization/mutations.py
imports: import numpy
  import nevergrad.common.typing
  from nevergrad.parametrization import discretization
  from .None import utils
label_desc: Use image node_id 2 for calling the Mutator obj's underlying member method code with example usage: obj.significantly_mutate(v, arity) and returns: w, self