datasketches-cpp
Loading...
Searching...
No Matches
Hll8Array.hpp
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20#ifndef _HLL8ARRAY_HPP_
21#define _HLL8ARRAY_HPP_
22
23#include "HllArray.hpp"
24
25namespace datasketches {
26
27template<typename A>
28class Hll8Iterator;
29
30template<typename A>
31class Hll8Array final : public HllArray<A> {
32 public:
33 Hll8Array(uint8_t lgConfigK, bool startFullSize, const A& allocator);
34 explicit Hll8Array(const HllArray<A>& that);
35
36 virtual ~Hll8Array() = default;
37 virtual std::function<void(HllSketchImpl<A>*)> get_deleter() const;
38
39 virtual Hll8Array<A>* copy() const;
40
41 inline uint8_t getSlot(uint32_t slotNo) const;
42 inline void putSlot(uint32_t slotNo, uint8_t value);
43
44 virtual HllSketchImpl<A>* couponUpdate(uint32_t coupon) final;
45 void mergeList(const CouponList<A>& src);
46 void mergeHll(const HllArray<A>& src);
47
48 virtual uint32_t getHllByteArrBytes() const;
49
50 private:
51 inline void internalCouponUpdate(uint32_t coupon);
52 inline void processValue(uint32_t slot, uint32_t mask, uint8_t new_val);
53};
54
55}
56
57#endif /* _HLL8ARRAY_HPP_ */
DataSketches namespace.
Definition binomial_bounds.hpp:38