public double estimateBias(double rawEstimate) {
        int index = Arrays.binarySearch(rawEstimateData, rawEstimate);
        // Check if the value is in rawEstimate or not.
        if (index >= 0) {
            return biasData[index];
        } else {
            int insertionIndex = -index - 1;
            if (insertionIndex == 0) {
                return biasData[0];
            } else if (insertionIndex == biasData.length) {
                return biasData[biasData.length - 1];
            } else {
                //Perform linear interpolation
                double x0 = rawEstimateData[insertionIndex - 1];
                double x1 = rawEstimateData[insertionIndex];
                double f0 = biasData[insertionIndex - 1];
                double f1 = biasData[insertionIndex];
                return linearInterpolationOf(x0, x1, f0, f1, rawEstimate);
            }
        }
    }
Maps a given raw estimate to a bias correction value. The callee should subtract the bias from the raw estimate
to get a bias corrected HLL estimate. Uses linear interpolation when no exact value exist.

@param rawEstimate The raw HLL estimate
@return The estimated bias for the given raw estimate.
searchlib/src/main/java/com/yahoo/searchlib/aggregation/hll/BiasEstimator.java