code: def generalized_negative_binomial(mu=1, alpha=1, shape=_Null, dtype=_Null, **kwargs):
      
      return _random_helper(_internal._random_generalized_negative_binomial,
                            _internal._sample_generalized_negative_binomial,
                            [mu, alpha], shape, dtype, kwargs)
docs: Draw random samples from a generalized negative binomial distribution.
  
      Samples are distributed according to a generalized negative binomial
      distribution parametrized by *mu* (mean) and *alpha* (dispersion).
      *alpha* is defined as *1/k* where *k* is the failure limit of the
      number of unsuccessful experiments (generalized to real numbers).
      Samples will always be returned as a floating point data type.
  
      Parameters
      ----------
      mu : float or Symbol, optional
          Mean of the negative binomial distribution.
      alpha : float or Symbol, optional
          Alpha (dispersion) parameter of the negative binomial distribution.
      shape : int or tuple of ints, optional
          The number of samples to draw. If shape is, e.g., `(m, n)` and `mu` and
          `alpha` are scalars, output shape will be `(m, n)`. If `mu` and `alpha`
          are Symbols with shape, e.g., `(x, y)`, then output will have shape
          `(x, y, m, n)`, where `m*n` samples are drawn for each `[mu, alpha)` pair.
      dtype : {'float16', 'float32', 'float64'}, optional
          Data type of output samples. Default is 'float32'
  
      Returns
      -------
      Symbol
          If input `shape` has dimensions, e.g., `(m, n)`, and `mu` and
          `alpha` are scalars, returned Symbol will resolve to shape `(m, n)`. If `mu`
          and `alpha` are Symbols with shape, e.g., `(x, y)`, returned Symbol will resolve
          to shape `(x, y, m, n)`, where `m*n` samples are drawn for each `[mu, alpha)` pair.