code: def _estimate(self, buffer):
          
          m = self._bucket_number
          raw_e = self._alpha * pow(m, 2) / sum([pow(2, -x) for x in buffer])
          if raw_e <= 5 / 2.0 * m:
              v = buffer.count(0)
              if v != 0:
                  return m * log(m / float(v), 2)
              else:
                  return raw_e
          elif raw_e <= 1 / 30.0 * 2 ** 160:
              return raw_e
          else:
              return -2 ** 160 * log(1 - raw_e / 2.0 ** 160, 2)
docs: Return the estimate of the cardinality
  
          :return: esitimate of the cardinality