docs: def batched_expiration_maintenance(self, elapsed_time):
          """ Batched version of expiration_maintenance()
              Cython version
          """
          num_iterations = self.num_batched_maintenance(elapsed_time)
          self.refresh_head, nonzero = maintenance(self.cellarray, self.nbr_bits, num_iterations, self.refresh_head)
          if num_iterations != 0:
              self.estimate_z = float(nonzero) / float(num_iterations)
              self._estimate_count()
          processed_interval = num_iterations * self.compute_refresh_time()
          return processed_interval