12#include <cereal/access.hpp>
13#include <cereal/cereal.hpp>
15#include <hibf/misc/insert_iterator.hpp>
379 friend class cereal::access;
381 static constexpr uint32_t version{3u};
383 template <
typename archive_t>
384 void serialize(archive_t & archive)
386 uint32_t parsed_version{version};
387 archive(cereal::make_nvp(
"version", parsed_version));
396 archive(CEREAL_NVP(
tmax));
398 if (parsed_version >= 2u)
402 if (parsed_version >= 3u)
408 archive(CEREAL_NVP(
alpha));
Definition insert_iterator.hpp:25
The configuration used to build an (H)IBF.
Definition config.hpp:76
uint8_t sketch_bits
The number of bits for HyperLogLog sketches.
Definition config.hpp:214
void validate_and_set_defaults()
Checks several variables of seqan::hibf::config and sets default values if necessary.
size_t number_of_hash_functions
The number of hash functions for the underlying Bloom Filters.
Definition config.hpp:136
double maximum_fpr
The desired maximum false positive rate of the underlying Bloom Filters. [RECOMMENDED_TO_ADAPT].
Definition config.hpp:154
double empty_bin_fraction
The percentage of empty bins in the layout.
Definition config.hpp:252
bool track_occupancy
Track the amount of emplaced elements for each technical bin.
Definition config.hpp:271
bool disable_estimate_union
Whether to disable union estimate of user bins to improve the layout.
Definition config.hpp:313
double alpha
A scaling factor to influence the amount of merged bins produced by the layout algorithm.
Definition config.hpp:288
bool disable_rearrangement
Whether to disable rearranging user bins based on their content similarity.
Definition config.hpp:324
size_t number_of_user_bins
The number of user bins.
Definition config.hpp:124
constexpr bool operator==(config const &other) const
Two configs are equal if all options, except seqan::hibf::config::input_fn, are equal.
Definition config.hpp:361
double relaxed_fpr
Allow a higher FPR in non-accuracy-critical parts of the HIBF structure.
Definition config.hpp:182
size_t threads
The number of threads to use during construction. [RECOMMENDED_TO_ADAPT].
Definition config.hpp:195
std::function< void(size_t const, insert_iterator &&) input_fn)
A function for how to hash your input [REQUIRED].
Definition config.hpp:111
double max_rearrangement_ratio
The maximal cardinality ratio in the clustering intervals of the layout rearrangement algorithm.
Definition config.hpp:302
size_t tmax
The maximum number of technical bins of each IBF in the HIBF.
Definition config.hpp:233
A strong type that represents the empty bin fraction for the seqan::hibf::interleaved_bloom_filter.
Definition interleaved_bloom_filter.hpp:85
A strong type that represents whether to track occupancy for the seqan::hibf::interleaved_bloom_filte...
Definition interleaved_bloom_filter.hpp:94