17#include <cereal/access.hpp>
18#include <cereal/cereal.hpp>
22namespace seqan::hibf::sketch
37 static constexpr uint64_t register_id_mask{15};
39 static constexpr size_t sketch_size{40};
67 friend class cereal::access;
69 template <
typename archive_t>
70 void serialize(archive_t & archive)
73 archive(CEREAL_NVP(version));
76 archive(CEREAL_NVP(
table));
MinHash sketches design to be used for Locality sensitive hashing.
Definition minhashes.hpp:36
minhashes(minhashes const &)=default
Defaulted.
minhashes(std::vector< uint64_t > const &smallest_values)
construct from a vector of the smallest values in a set (sorted ascending).
minhashes()=default
Defaulted.
bool is_valid() const
Checks whether the minHash table is completely filled.
static void push_to_heap_if_smaller(uint64_t const value, std::vector< uint64_t > &heap)
Pushes value to the heap if it is smaller than the current largest element.
static constexpr size_t num_sketches
...00001111
Definition minhashes.hpp:38
minhashes(minhashes &&)=default
Defaulted.
minhashes & operator=(minhashes const &)=default
Defaulted.
minhashes & operator=(minhashes &&)=default
Defaulted.
std::vector< std::vector< uint64_t > > table
A table of sketches. For LSH we need multiple sketches, stored in a table.
Definition minhashes.hpp:42
void fill_incomplete_sketches(std::span< uint64_t > const &more_smallest_values)
Adds more minhash values to an existing but incomplete table.