6 #ifndef TURI_SKETCHES_SPACE_SAVING_SKETCH_FLEXTYPE_HPP 7 #define TURI_SKETCHES_SPACE_SAVING_SKETCH_FLEXTYPE_HPP 10 #include <ml/sketches/space_saving.hpp> 11 #include <core/data/flexible_type/flexible_type.hpp> 25 std::unique_ptr<space_saving<flex_int> > ss_integer;
26 std::unique_ptr<space_saving<flexible_type> > ss_general;
28 bool is_combined =
false;
36 , is_combined(ss.is_combined)
37 , m_epsilon(ss.m_epsilon)
45 is_combined = ss.is_combined;
46 m_epsilon = ss.m_epsilon;
73 ss_general->add(t, count);
78 ss_general->add(t, count);
87 return ss_general->size() + ss_integer->size();
96 _combine_integer_and_general();
98 return ss_general->frequent_items();
107 _combine_integer_and_general();
109 return ss_general->guaranteed_frequent_items();
117 _combine_integer_and_general();
118 if(!other.is_combined)
119 other._combine_integer_and_general();
121 ss_general->combine(*other.ss_general);
135 void _combine_integer_and_general() {
136 ss_general->combine(*ss_integer);
space_saving_flextype(double epsilon=0.0001)
void add(const flexible_type &t, size_t count=1)
void combine(space_saving_flextype &other)
flex_type_enum get_type() const
std::vector< std::pair< flexible_type, size_t > > frequent_items()
std::vector< std::pair< flexible_type, size_t > > guaranteed_frequent_items()