úÎ+!)Ô     NoneMin HLL precisionMax HLL precision)Number of buckets for given HLL precisionLReturns an estimate of an integral term in the computation of the HLL size.yThese are the thresholds of cardinality that represent a transition from LINEARCOUNTING to the bias-corrected estimatesnThese data are empirical estimates of given cardinalities at particular precisions, used for bias estimation.These data come from http://goo.gl/iU8IgÆThese data are empirical estimates of bias at particular precisions, and corresponding to rawEstimateDataby interpolation, it is possible to get other bias estimates based on these empirical data.These data come from http://goo.gl/iU8IgNone (>?IKLN THyperLogLog++ cardinality estimation paired with MinHash for intersection estimationp - precision of HLL structurek, - precision of MinHash structure (max size)Create new counter::set -XDataKinds:load Data.HyperLogLogPlus"type HLL = HyperLogLogPlus 12 8192 mempty :: HLL7HyperLogLogPlus [ p = 12 k = 8192 ] [ minSet size = 0 ]OHyperLogLogPlus and MinHash precisions are specified in a type. HLL precision pA should be between 4 and 18, starting from 10 for good accuracy.MinHash precision kM ideally should be greater or equal 8192 for decent intersection estimation."Estimating number of unique items:.size (foldr insert mempty [1 .. 75000] :: HLL)75090Combine multiple counters:`size $ (foldr insert mempty [1 .. 5000] :: HLL) <> (foldr insert mempty [3000 .. 10000] :: HLL)10044#Compute estimated set intersection:jintersection $ [(foldr insert mempty [1 .. 15000] :: HLL), (foldr insert mempty [12000 .. 20000] :: HLL)]3100Insert hashable value Insert already hashed value ‡Compute estimated size of HyperLogLogPlus. If number of inserted values is smaller than MinHash precision this will return exact value "Compute estimted size based on HLL Returns an estimate of the bias given our current estimate of size and our precision. This performs a simple linear interpolation based on empirical results. YReturns an estimate of the size of the intersection of the given HyperLogLogPlus objects ,Cast HyperLogLogPlus to new precision levels 1New HLL precision should less or equal to old one´New MinHash precision has to be less or equal to old one, or it can be larger, but only if number of inserted hashes in old structure is smaller than old precision (size limit)2Compute bucket index for given HLL precision level/Compute hash rank for given HLL precision level      None         hyper_L9JpQbR0Nw5H9WtoqIQBYeData.HyperLogLogPlus.ConfigData.HyperLogLogPlus.TypeData.HyperLogLogPlusminPmaxP numBucketsalpha thresholdsrawEstimateDatabiasDataHyperLogLogPlusinsert insertHashsize intersectioncast estimatedSize estimatedBias bucketIdxcalcRankhllRank hllMinSetkctxpctx$fShowHyperLogLogPlus$fMonoidHyperLogLogPlus$fSemigroupHyperLogLogPlus