class_docstr: Naive Marsaglia & Tsang rejection sampler for standard Gamma distibution.
  This assumes `concentration >= 1` and does not boost `concentration` or augment shape.
code: def __init__(self, concentration):
      if concentration.data.min() < 1:
          raise NotImplementedError(
              "concentration < 1 is not supported"
          )
      self.concentration = concentration
      self._standard_gamma = Gamma(
          concentration,
          concentration.new([1.0]).squeeze().expand_as(concentration),
      )
      # The following are Marsaglia & Tsang's variable names.
      self._d = self.concentration - 1.0 / 3.0
      self._c = 1.0 / torch.sqrt(9.0 * self._d)
      # Compute log scale using Gamma.log_prob().
      x = self._d.detach()  # just an arbitrary x.
      log_scale = (
          self.propose_log_prob(x)
          + self.log_prob_accept(x)
          - self.log_prob(x)
      )
      super().__init__(
          self.propose,
          self.log_prob_accept,
          log_scale,
          batch_shape=concentration.shape,
          event_shape=(),
      )
  
imports: import torch
  from pyro.distributions.rejector import Rejector
  from pyro.distributions.score_parts import ScoreParts
  from pyro.distributions.torch import Beta, Dirichlet, Gamma, Normal
  from pyro.distributions.util import copy_docs_from, weakmethod
label_desc: Use image node_id 1 to create a new RejectionStandardGamma object from inherited base classes: Rejector with example: obj = RejectionStandardGamma(concentration)