36#include <gtest/gtest.h>
104 for (
int i = 0; i < 100; ++i)
109 for (
int i = 0; i < 100; ++i)
117 for (
int i = 0; i < 100; ++i)
121 for (
int i = 1000; i < 2000; ++i)
193 for (
int i = 0; i < 50; ++i)
196 for (
int i = 0; i < 50; ++i)
225 for (
int i = 0; i < 8; ++i)
235 for (
int i = 0; i < 4; ++i)
242 for (
int i = 100; i < 200; ++i)
244 try {
qf.insert(i); }
245 catch (
const std::overflow_error &) {
threw =
true;
break; }
282 for (
int i = 0; i < 30; ++i)
290 for (
int i = 0; i < 30; ++i)
297 for (
int i = 0; i < 30; ++i)
304 for (
int i = 0; i < 30; ++i)
328 for (
int i = 0; i < 50; ++i)
335 for (
int i = 0; i < 50; ++i)
348 for (
int i = 0; i < 50; ++i)
350 for (
int i = 50; i < 100; ++i)
355 for (
int i = 0; i < 100; ++i)
381 const size_t n = 500;
384 for (
size_t i = 0; i < n; ++i)
385 qf.insert(
static_cast<int>(i));
389 for (
size_t i = n + 10000; i < n + 10000 +
test_count; ++i)
390 if (
qf.contains(
static_cast<int>(i)))
Quotient filter for probabilistic set membership with deletion.
Quotient_Filter & insert(const T &item)
Insert an element.
static Quotient_Filter from_capacity(size_t expected_n, double fp_rate, uint32_t seed=0x5F3759DF)
Construct from desired capacity and false positive rate.
void merge(const Quotient_Filter &other)
Merge another filter (same q, r, seed).
bool contains(const T &item) const noexcept
Test membership.
static std::pair< uint8_t, uint8_t > estimate(size_t n, double fp_rate)
Estimate (q, r) for n elements and target FP rate.
void swap(Quotient_Filter &other) noexcept
Swap in O(1).
Main namespace for Aleph-w library functions.
Itor2 copy(Itor1 sourceBeg, const Itor1 &sourceEnd, Itor2 destBeg)
Copy elements from one range to another.
Divide_Conquer_DP_Result< Cost > divide_and_conquer_partition_dp(const size_t groups, const size_t n, Transition_Cost_Fn transition_cost, const Cost inf=dp_optimization_detail::default_inf< Cost >())
Optimize partition DP using divide-and-conquer optimization.
Quotient filter: a cache-friendly probabilistic set with deletion.