class_docstr: Bounds all real values into [0, 1] using a gaussian cumulative density function (cdf)
  Beware, cdf goes very fast to its limits.
  
  Parameters
  ----------
  lower: float
      lower bound
  upper: float
      upper bound
  eps: float
      small values to avoid hitting the bounds
  scale: float
      scaling factor of the density
  density: str
      either gaussian, or cauchy distributions
class_docstr_tok: ["Bounds","all","real","values","into","[","0",",","1","]","using","a","gaussian","cumulative","density","function","(","cdf",")","Beware",",","cdf","goes","very","fast","to","its","limits",".","Parameters","--","--","--","--","--","lower",":","float","lower","bound","upper",":","float","upper","bound","eps",":","float","small","values","to","avoid","hitting","the","bounds","scale",":","float","scaling","factor","of","the","density","density",":","str","either","gaussian",",","or","cauchy","distributions"]
code: def backward(self, y: np.ndarray) -> np.ndarray:
      if (y > self.a_max).any() or (y < self.a_min).any():
          raise ValueError(
              f"Only data between {self.a_min} and {self.a_max} can be transformed back.\nGot: {y}"
          )
      y = np.clip((y - self._b) / self._a, self._eps, 1 - self._eps)
      return self._scale * self._back(y)
  
imports: import uuid
  import itertools
  import numpy
  from scipy import stats
  import nevergrad.common.typing
  from .None import utils
label_desc: Use image node_id 3 for calling the CumulativeDensity obj's underlying member method code with example usage: obj.backward(y) and returns: unknown