25template<
typename Array,
typename Policy,
typename Allocator>
26array_tuple_union<Array, Policy, Allocator>::array_tuple_union(uint8_t lg_cur_size, uint8_t lg_nom_size, resize_factor rf,
float p, uint64_t theta, uint64_t seed,
const Policy& policy,
const Allocator& allocator):
27Base(lg_cur_size, lg_nom_size, rf, p, theta, seed, policy, allocator)
30template<
typename Array,
typename Policy,
typename Allocator>
31template<
typename FwdSketch>
33 const uint8_t num_values = this->state_.get_policy().get_external_policy().get_num_values();
34 if (sketch.get_num_values() != num_values) {
35 throw std::invalid_argument(
"number of values mismatch: union has " + std::to_string(num_values)
36 +
", sketch has " + std::to_string(sketch.get_num_values()));
41template<
typename Array,
typename Policy,
typename Allocator>
42auto array_tuple_union<Array, Policy, Allocator>::get_result(
bool ordered)
const -> CompactSketch {
43 return CompactSketch(this->state_.get_policy().get_external_policy().get_num_values(), Base::get_result(ordered));
48template<
typename Array,
typename Policy,
typename Allocator>
49array_tuple_union<Array, Policy, Allocator>::builder::builder(
const Policy& policy,
const Allocator& allocator):
50tuple_base_builder<builder, Policy, typename Array::allocator_type>(policy, allocator) {}
52template<
typename Array,
typename Policy,
typename Allocator>
53auto array_tuple_union<Array, Policy, Allocator>::builder::build() const ->
array_tuple_union {
54 return array_tuple_union(this->starting_lg_size(), this->lg_k_, this->rf_, this->p_, this->starting_theta(), this->seed_, this->policy_, this->allocator_);
array tuple union
Definition array_tuple_union.hpp:54
void update(FwdSketch &&sketch)
Update the union with a given sketch.
Definition array_tuple_union_impl.hpp:32
void update(FwdSketch &&sketch)
DataSketches namespace.
Definition binomial_bounds.hpp:38