Commit 735b928b authored by antirez's avatar antirez
Browse files

Use llroundl() before converting loglog-beta output to integer.

Otherwise for small cardinalities the algorithm will output something
like, for example, 4.99 for a candinality of 5, that will be converted
to 4 producing a huge error.
parent 6cae609e
......@@ -1009,7 +1009,7 @@ uint64_t hllCount(struct hllhdr *hdr, int *invalid) {
-0.005384159*pow(zl,6) +
0.00042419*pow(zl,7);
E = alpha*m*(m-ez)*(1/(E+beta));
E = llroundl(alpha*m*(m-ez)*(1/(E+beta)));
} else {
/* Muliply the inverse of E for alpha_m * m^2 to have the raw estimate. */
E = (1/E)*alpha*m*m;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment