datasketches-cpp
|
Compact Tuple sketch. More...
#include <tuple_sketch.hpp>
Public Member Functions | |
compact_tuple_sketch (const Base &other, bool ordered) | |
Copy constructor. More... | |
compact_tuple_sketch (const compact_tuple_sketch &other)=default | |
Copy constructor. More... | |
compact_tuple_sketch (compact_tuple_sketch &&) noexcept | |
Move constructor. More... | |
compact_tuple_sketch & | operator= (const compact_tuple_sketch &other)=default |
Copy assignment. More... | |
compact_tuple_sketch & | operator= (compact_tuple_sketch &&other)=default |
Move assignment. More... | |
compact_tuple_sketch (const theta_sketch_alloc< AllocU64 > &other, const Summary &summary, bool ordered=true) | |
Constructor from Theta sketch. More... | |
virtual Allocator | get_allocator () const |
virtual bool | is_empty () const |
virtual bool | is_ordered () const |
virtual uint64_t | get_theta64 () const |
virtual uint32_t | get_num_retained () const |
virtual uint16_t | get_seed_hash () const |
template<typename Predicate > | |
compact_tuple_sketch | filter (const Predicate &predicate) const |
Produces a Compact Tuple sketch from this sketch by applying a given predicate to each entry. More... | |
template<typename SerDe = serde<Summary>> | |
void | serialize (std::ostream &os, const SerDe &sd=SerDe()) const |
This method serializes the sketch into a given stream in a binary form. More... | |
template<typename SerDe = serde<Summary>> | |
vector_bytes | serialize (unsigned header_size_bytes=0, const SerDe &sd=SerDe()) const |
This method serializes the sketch as a vector of bytes. More... | |
virtual iterator | begin () |
Iterator over entries in this sketch. More... | |
virtual iterator | end () |
Iterator pointing past the valid range. More... | |
virtual const_iterator | begin () const |
Const iterator over entries in this sketch. More... | |
virtual const_iterator | end () const |
Const iterator pointing past the valid range. More... | |
Public Member Functions inherited from tuple_sketch< Summary, std::allocator< Summary > > | |
double | get_estimate () const |
double | get_lower_bound (uint8_t num_std_devs, uint32_t num_subset_entries) const |
Returns the approximate lower error bound given a number of standard deviations over an arbitrary number of items stored in the sketch. More... | |
double | get_lower_bound (uint8_t num_std_devs) const |
Returns the approximate lower error bound given a number of standard deviations. More... | |
double | get_upper_bound (uint8_t num_std_devs, uint32_t num_subset_entries) const |
Returns the approximate upper error bound given a number of standard deviations over an arbitrary number of items stored in the sketch. More... | |
double | get_upper_bound (uint8_t num_std_devs) const |
Returns the approximate upper error bound given a number of standard deviations. More... | |
bool | is_estimation_mode () const |
double | get_theta () const |
string< std::allocator< Summary > > | to_string (bool print_items=false) const |
Provides a human-readable summary of this sketch as a string. More... | |
Static Public Member Functions | |
template<typename Sketch , typename Predicate > | |
static compact_tuple_sketch | filter (const Sketch &sketch, const Predicate &predicate) |
Produces a Compact Tuple sketch from a given sketch (Update or Compact) by applying a given predicate to each entry. More... | |
template<typename SerDe = serde<Summary>> | |
static compact_tuple_sketch | deserialize (std::istream &is, uint64_t seed=DEFAULT_SEED, const SerDe &sd=SerDe(), const Allocator &allocator=Allocator()) |
This method deserializes a sketch from a given stream. More... | |
template<typename SerDe = serde<Summary>> | |
static compact_tuple_sketch | deserialize (const void *bytes, size_t size, uint64_t seed=DEFAULT_SEED, const SerDe &sd=SerDe(), const Allocator &allocator=Allocator()) |
This method deserializes a sketch from a given array of bytes. More... | |
Protected Member Functions | |
template<typename SerDe , typename SS = Summary, typename std::enable_if< std::is_arithmetic< SS >::value, int >::type = 0> | |
size_t | get_serialized_size_summaries_bytes (const SerDe &sd) const |
Computes size needed to serialize summaries in the sketch. More... | |
template<typename SerDe , typename SS = Summary, typename std::enable_if<!std::is_arithmetic< SS >::value, int >::type = 0> | |
size_t | get_serialized_size_summaries_bytes (const SerDe &sd) const |
Computes size needed to serialize summaries in the sketch. More... | |
Compact Tuple sketch.
This is an immutable form of the Tuple sketch, the form that can be serialized and deserialized.
compact_tuple_sketch | ( | const Base & | other, |
bool | ordered | ||
) |
Copy constructor.
Constructs a compact sketch from another sketch (either update or compact)
other | sketch to be copied |
ordered | if true make the resulting sketch ordered |
|
default |
Copy constructor.
other | sketch to be copied |
|
noexcept |
Move constructor.
other | sketch to be moved |
compact_tuple_sketch | ( | const theta_sketch_alloc< AllocU64 > & | other, |
const Summary & | summary, | ||
bool | ordered = true |
||
) |
Constructor from Theta sketch.
other | Theta sketch to be constructed from |
summary | Summary instance to be associated with each entry |
ordered | if true make the resulting sketch ordered |
|
default |
Copy assignment.
other | sketch to be copied |
|
default |
Move assignment.
other | sketch to be moved |
|
virtual |
Implements tuple_sketch< Summary, std::allocator< Summary > >.
|
virtual |
Implements tuple_sketch< Summary, std::allocator< Summary > >.
|
virtual |
Implements tuple_sketch< Summary, std::allocator< Summary > >.
|
virtual |
Implements tuple_sketch< Summary, std::allocator< Summary > >.
|
virtual |
Implements tuple_sketch< Summary, std::allocator< Summary > >.
|
virtual |
Implements tuple_sketch< Summary, std::allocator< Summary > >.
compact_tuple_sketch filter | ( | const Predicate & | predicate | ) | const |
Produces a Compact Tuple sketch from this sketch by applying a given predicate to each entry.
predicate | should return true for the entries to keep |
|
static |
Produces a Compact Tuple sketch from a given sketch (Update or Compact) by applying a given predicate to each entry.
sketch | input sketch |
predicate | should return true for the entries to keep |
void serialize | ( | std::ostream & | os, |
const SerDe & | sd = SerDe() |
||
) | const |
This method serializes the sketch into a given stream in a binary form.
os | output stream |
sd | instance of a SerDe |
vector_bytes serialize | ( | unsigned | header_size_bytes = 0 , |
const SerDe & | sd = SerDe() |
||
) | const |
This method serializes the sketch as a vector of bytes.
An optional header can be reserved in front of the sketch. It is a blank space of a given size. This header is used in Datasketches PostgreSQL extension.
header_size_bytes | space to reserve in front of the sketch |
sd | instance of a SerDe |
|
virtual |
Iterator over entries in this sketch.
Implements tuple_sketch< Summary, std::allocator< Summary > >.
|
virtual |
Iterator pointing past the valid range.
Not to be incremented or dereferenced.
Implements tuple_sketch< Summary, std::allocator< Summary > >.
|
virtual |
Const iterator over entries in this sketch.
Implements tuple_sketch< Summary, std::allocator< Summary > >.
|
virtual |
Const iterator pointing past the valid range.
Not to be incremented or dereferenced.
Implements tuple_sketch< Summary, std::allocator< Summary > >.
|
static |
This method deserializes a sketch from a given stream.
is | input stream |
seed | the seed for the hash function that was used to create the sketch |
sd | instance of a SerDe |
allocator | instance of an Allocator |
|
static |
This method deserializes a sketch from a given array of bytes.
bytes | pointer to the array of bytes |
size | the size of the array |
seed | the seed for the hash function that was used to create the sketch |
sd | instance of a SerDe |
allocator | instance of an Allocator |
|
protected |
Computes size needed to serialize summaries in the sketch.
This version is for fixed-size arithmetic types (integral and floating point).
|
protected |
Computes size needed to serialize summaries in the sketch.
This version is for all other types and can be expensive since every item needs to be looked at.