docs: def constraint_stats(self,primarylist=None):
          """Returns information about effect of constraints on population.
  
          :param primarylist:
             List of constraint names that you want specific information on
             (i.e., not blended within "multiple constraints".)
  
          :return:
             ``dict`` of what percentage of population is ruled out by
             each  constraint, including a "multiple constraints" entry.
          """
          if primarylist is None:
              primarylist = []
          n = len(self.stars)
          primaryOK = np.ones(n).astype(bool)
          tot_reject = np.zeros(n)
  
          for name in self.constraints:
              if name in self.selectfrac_skip:
                  continue
              c = self.constraints[name]
              if name in primarylist:
                  primaryOK &= c.ok
              tot_reject += ~c.ok
          primary_rejected = ~primaryOK
          secondary_rejected = tot_reject - primary_rejected
          lone_reject = {}
          for name in self.constraints:
              if name in primarylist or name in self.selectfrac_skip:
                  continue
              c = self.constraints[name]
              lone_reject[name] = ((secondary_rejected==1) & (~primary_rejected) & (~c.ok)).sum()/float(n)
          mult_rejected = (secondary_rejected > 1) & (~primary_rejected)
          not_rejected = ~(tot_reject.astype(bool))
          primary_reject_pct = primary_rejected.sum()/float(n)
          mult_reject_pct = mult_rejected.sum()/float(n)
          not_reject_pct = not_rejected.sum()/float(n)
          tot = 0
  
          results = {}
          results['pri'] = primary_reject_pct
          tot += primary_reject_pct
          for name in lone_reject:
              results[name] = lone_reject[name]
              tot += lone_reject[name]
          results['multiple constraints'] = mult_reject_pct
          tot += mult_reject_pct
          results['remaining'] = not_reject_pct
          tot += not_reject_pct
  
          if tot != 1:
              logging.warning('total adds up to: %.2f (%s)' % (tot,self.model))
  
          return results