20 #ifndef _HLLSKETCHIMPL_HPP_
21 #define _HLLSKETCHIMPL_HPP_
23 #include "HllUtil.hpp"
33 using vector_bytes = std::vector<uint8_t, typename std::allocator_traits<A>::template rebind_alloc<uint8_t>>;
38 virtual void serialize(std::ostream& os,
bool compact)
const = 0;
39 virtual vector_bytes serialize(
bool compact,
unsigned header_size_bytes)
const = 0;
49 hll_mode getCurMode()
const;
51 virtual double getEstimate()
const = 0;
52 virtual double getCompositeEstimate()
const = 0;
53 virtual double getUpperBound(uint8_t numStdDev)
const = 0;
54 virtual double getLowerBound(uint8_t numStdDev)
const = 0;
56 inline uint8_t getLgConfigK()
const;
58 virtual uint32_t getMemDataStart()
const = 0;
60 virtual uint8_t getPreInts()
const = 0;
64 virtual uint32_t getUpdatableSerializationBytes()
const = 0;
65 virtual uint32_t getCompactSerializationBytes()
const = 0;
67 virtual bool isCompact()
const = 0;
68 virtual bool isEmpty()
const = 0;
69 virtual bool isOutOfOrderFlag()
const = 0;
70 virtual void putOutOfOrderFlag(
bool oooFlag) = 0;
71 virtual A getAllocator()
const = 0;
72 bool isStartFullSize()
const;
76 static hll_mode extractCurMode(uint8_t modeByte);
77 uint8_t makeFlagsByte(
bool compact)
const;
78 uint8_t makeModeByte()
const;
80 const uint8_t lgConfigK_;
83 const bool startFullSize_;
This is a high performance implementation of Phillipe Flajolet's HLL sketch but with significantly im...
Definition: HllSketchImpl.hpp:31
DataSketches namespace.
Definition: binomial_bounds.hpp:38
target_hll_type
Specifies the target type of HLL sketch to be created.
Definition: hll.hpp:72