joaquintides
916c845c41
added documentation
...
* removed unneeded explicit
* fixed boundary results for capacity_for and fpr_for
* renamed used_block_size to used_value_size
* added reset(n,n)
* added initial documentation draft
* static asserted assumption on Block size
* synced up naming in comment with that of docs
* added implementation notes
* editorial
* expanded tables
* removed unneeded explicit
* fixed boundary results for capacity_for and fpr_for
* renamed used_block_size to used_value_size
* added reset(n,n)
* added initial documentation draft
* static asserted assumption on Block size
* synced up naming in comment with that of docs
* added implementation notes
* editorial
* added benchmarks
* editorial
* added configuration section
* editorial
* s/multiinsertion/multi-insertion
* added section on use cases
* editorial
2025-04-02 20:42:19 +02:00
joaquintides
2f22602ece
added (n,fpr) construction, fpr_for, capacity_for ( #2 )
...
* added (n,fpr) construction
* added missing file
* fixed type for max_fpr_exp
* matched types of two variables
* shut down AddressSanitizer: allocation-size-too-big
* placed __attribute__ right
* s/::operator new/malloc to avoid AddressSanitizer: allocation-size-too-big
* prelimited size as only way to avoid AddressSanitizer: allocation-size-too-big
* adjusted n to target fpr and relaxed deviation limits
* added filter::capacity_for
* avoided signed/unsigned mismatch
* stylistic
* added filter::fpr_for
* stylistic
* [skip ci] updated FPR estimation section
* [skip ci] typo
* [skip ci] editorial
* [skip ci] typo
* [skip ci] editorial
2025-03-22 19:04:33 +01:00
joaquintides
10ea9c06b4
fixed previous commit
2025-03-04 09:58:38 +01:00
joaquintides
c049bc3d5f
s/used_block_size/bucket_size in unaligned cases
2025-03-04 09:47:57 +01:00
joaquintides
8bd6f4353b
added fast_multiblock64.hpp
2025-03-02 13:02:00 +01:00
joaquintides
2e060b7eb6
added comment
2025-03-01 16:07:30 +01:00
joaquintides
e7017591ba
stylistic
2025-03-01 12:24:02 +01:00
joaquintides
6df60acc80
added missing header for SSE4.1
2025-03-01 11:58:05 +01:00
joaquintides
741c7c636e
emulated _mm_testc_si128 for SSE<4.1
2025-03-01 11:51:01 +01:00
joaquintides
fc5b5f0606
added fast_multiblock32/SSE2
2025-03-01 10:44:53 +01:00
joaquintides
ac2e7d4a16
fixed copypaste error
2025-02-28 20:29:42 +01:00
joaquintides
f3b3ed02a4
microoptimized make_uint32x4x2_t, plus made fast_multiblock32 compile in MSVC/ARM
2025-02-28 20:08:49 +01:00
joaquintides
20b684f4bb
microoptimized make_m256i
2025-02-28 20:05:37 +01:00
joaquintides
39a0bfcb98
move template parameter Hash to penultimate position
2025-02-27 21:11:48 +01:00
joaquintides
3bfd03619e
fixed noexcept clause
2025-02-27 20:26:23 +01:00
joaquintides
2bb11525f6
removed superfluous AVX code
2025-02-27 20:25:03 +01:00
joaquintides
37e29b61a8
added ARM version of fast_multiblock32
...
* checked if Neon is available in CI
* added missing file
* implemented ARM-based fast_multiblock32
* failing, see if its only for K!=8
* reverted
* fixed check_uint32x4x2_t for kp!=8
* fixed masks
* stylistic
* stylistic
* fixed conversion warning
* used explicit conversion
* stylistic
* stylistic
* fixed copypaste error, used more hash bits in make_uint32x4x2_t
2025-02-26 16:30:30 +01:00
joaquintides
f28e04e30f
stylistic
2025-02-25 16:57:50 +01:00
joaquintides
50a991b519
editorial
2025-02-25 13:49:53 +01:00
joaquintides
1630e04f6e
added test_capacity
2025-02-25 13:38:29 +01:00
joaquintides
29048b206c
added test_comparison
2025-02-25 12:09:36 +01:00
joaquintides
357999f7c9
made sure filter{f.capacity()}.capacity()==f.capacity()
2025-02-24 19:06:14 +01:00
joaquintides
d7c6972a45
added test_allocator_aware_construction, miscellanea
2025-02-24 13:01:27 +01:00
joaquintides
fb16690165
avoided shadowed template param
2025-02-24 11:59:45 +01:00
joaquintides
ba3f2581f6
avoided shadowed template param
2025-02-24 11:57:39 +01:00
joaquintides
1804231c03
completed emplace and insert, added tests, miscellanea
2025-02-24 11:53:48 +01:00
joaquintides
601e1c2909
added range insert
2025-02-23 19:20:00 +01:00
joaquintides
35cee809a1
added tests for assignment and swap
2025-02-21 18:56:22 +01:00
joaquintides
61f0981323
reverted prior (success)
2025-02-21 17:22:48 +01:00
joaquintides
732128ece5
made AVX2 code fail to see if -march=native hit it
2025-02-21 17:19:04 +01:00
joaquintides
63804216fe
typo
2025-02-21 13:38:58 +01:00
joaquintides
34d3620640
replaced boost::core::bit_width with C++11 constexpr version
2025-02-21 12:49:52 +01:00
joaquintides
48adfd13bd
s/{...}/(...) for pre-DR1467 compilers
2025-02-21 12:11:47 +01:00
joaquintides
8638d9645f
added test_construction
2025-02-21 11:42:57 +01:00
joaquintides
20efa52197
eliminated noexcept-violating step in filter::operator=(filter&&)
2025-02-20 18:38:53 +01:00
joaquintides
62c62c3808
polished move ctor
2025-02-20 18:37:25 +01:00
joaquintides
765af6cb26
refactored merge_{and|or} to &= and |=
2025-02-20 18:06:22 +01:00
joaquintides
c0e6c74a22
added noexcepts, operator{==|!=}, swap, merge_{and|or}
2025-02-19 19:53:39 +01:00
joaquintides
79fa6f4975
editorial
2025-02-19 09:38:09 +01:00
joaquintides
3d90f8f079
stylistic
2025-02-19 09:23:57 +01:00
joaquintides
5852415299
fixed header guard macro names
2025-02-18 19:22:17 +01:00
joaquintides
01bbe859bf
added boilerplate API functions
2025-02-18 19:21:07 +01:00
joaquintides
5874866541
implemented filter_core allocator aware assignment
2025-02-17 20:15:20 +01:00
joaquintides
455d487af8
narrowed down null capacity check
2025-02-17 18:06:37 +01:00
joaquintides
bf27165f3e
implemented filter_core allocator aware construction
2025-02-16 19:35:50 +01:00
joaquintides
d2f16884ef
remove unneeded #include
2025-02-15 18:56:45 +01:00
joaquintides
2b8823e0d6
extended fast_multiblock32 to arbitrary K
2025-02-15 11:41:59 +01:00
joaquintides
dcbfa124f0
worked around clang-cl codegen fiasco
2025-02-14 13:18:55 +01:00
joaquintides
8aa1708746
used internal 64-bit hash values even in 32-bit-mode
2025-02-12 18:50:56 +01:00
joaquintides
b11aaab189
extended comparison table
2025-02-11 18:49:25 +01:00