of registers are already in a saturated state, meaning that they have reached the maximum possible value $\symRegRange + 1$, the raw estimator underestimates cardinalities. For the 32-bit hash value case $(\symPrecision+\symRegRange=32)$, which was considered in [@Flajolet2007], following correction formula was proposed if $\symCardinalityRawEstimate>2^{32}/30\approx\num{1.43e8}$ to take these saturated registers into account $$\label{equ:large_range_estimate}
\symCardinalityEstimate_\text{large}
=
-2^{32}\log(1-\symCardinalityRawEstimate/2^{32}).$$

The relative estimation error of the original method that includes both corrections is shown in \[fig:original\_estimate\] for the case $\symPrecision=12$ and $\symRegRange=20$. Unfortunately, the ranges where the estimation error is small for $\symCardinalityRawEstimate$ and $\symCardinalityEstimate_\text{small}$ do not overlap, which causes the estimation error to be much larger near the transition region. To reduce the error for cardinalities close to this region, it was proposed to correct the bias of $\symCardinalityRawEstimate$. Empirically collected bias correction data can be either stored as set of interpolation points [@Heule2013], as lookup table [@Rhodes2015], or as best-fitting polynomial [@Sanfilippo2014]. However, all these empirical approaches treat the symptom and not the cause.

![Relative error of the raw estimator for $\symPrecision = 12$ and $\symRegRange=20$.[]{data-label="fig:raw_estimate"}](raw_estimate){width="1\columnwidth"}

![Relative error of the linear counting estimator for bitmap size 4096 which corresponds to $\symPrecision = 12$ and $\symRegRange=0$.[]{data-label="fig:small_range_estimate"}](small_range_estimate){width="1\columnwidth"}

![Relative estimation error of the original method for 