code: def effective_nsamples(self):
          
          try:
              act = numpy.array(list(self.acts.values())).max()
          except (AttributeError, TypeError):
              act = numpy.inf
          if self.burn_in is None:
              nperwalker = max(int(self.niterations // act), 1)
          elif self.burn_in.is_burned_in:
              nperwalker = int(
                  (self.niterations - self.burn_in.burn_in_iteration) // act)
              # after burn in, we always have atleast 1 sample per walker
              nperwalker = max(nperwalker, 1)
          else:
              nperwalker = 0
          return self.nwalkers * nperwalker
docs: The effective number of samples post burn-in that the sampler has
          acquired so far.