def estimate(self):
E = self.alpha * float(self.m ** <NUM_LIT:2>) / np.power(<NUM_LIT>, - self.M).sum()<EOL>if E <= <NUM_LIT> * self.m:             <EOL><INDENT>V = self.m - np.count_nonzero(self.M)<EOL>return int(self.m * np.log(self.m / float(V))) if V > <NUM_LIT:0> else int(E)<EOL><DEDENT>elif E <= float(long(<NUM_LIT:1>) << self.precision) / <NUM_LIT>:<EOL><INDENT>return int(E)<EOL><DEDENT>else:<EOL><INDENT>return int(-(long(<NUM_LIT:1>) << self.precision) *<EOL>np.log(<NUM_LIT:1.0> - E / (long(<NUM_LIT:1>) << self.precision)))<EOL><DEDENT>
Returns the estimate of the cardinality