code: def _new_point(self, loglstar, logvol):
          
  
          ncall, nupdate = 0, 0
          while True:
              # Get the next point from the queue
              u, v, logl, nc, blob = self._get_point_value(loglstar)
              ncall += nc
  
              # Bounding checks.
              ucheck = ncall >= self.update_interval * (1 + nupdate)
              bcheck = self._beyond_unit_bound(loglstar)
  
              # If our queue is empty, update any tuning parameters associated
              # with our proposal (sampling) method.
              if blob is not None and self.nqueue <= 0 and bcheck:
                  self.update_proposal(blob)
  
              # If we satisfy the log-likelihood constraint, we're done!
              if logl >= loglstar:
                  break
  
              # If there has been more than `update_interval` function calls
              # made *and* we satisfy the criteria for moving beyond sampling
              # from the unit cube, update the bound.
              if ucheck and bcheck:
                  pointvol = math.exp(logvol) / self.nlive
                  bound = self.update(pointvol)
                  if self.save_bounds:
                      self.bound.append(bound)
                  self.nbound += 1
                  nupdate += 1
                  self.since_update = -ncall  # ncall will be added back later
  
          return u, v, logl, ncall
docs: Propose points until a new point that satisfies the log-likelihood
          constraint `loglstar` is found.