2
0
mirror of https://github.com/boostorg/bloom.git synced 2026-01-19 16:12:10 +00:00

61 Commits

Author SHA1 Message Date
joaquintides
5b9069a147 added bulk operations (#43) 2025-09-30 20:11:22 +02:00
joaquintides
d4b5eb6eef Made some subfilters' lookup branchless (#42)
* made fast_multiblock32, fast_multiblock64 and block (for array block types) branchless

* added mixed lookup to comparison tables

* typo

* updated benchmarks

* updated release notes
2025-09-13 18:44:33 +02:00
joaquintides
6e51886b9e expanded and documented GDB pretty-printer (#38) 2025-06-29 17:00:02 +02:00
Braden Ganetsky
8103d72bf0 Write GDB pretty-printer based on the existing Natvis (#34) 2025-06-26 21:04:03 +02:00
joaquintides
2f76edcb3e shut down more MSVC 14.0 C4800 warnings 2025-06-26 09:48:09 +02:00
joaquintides
ecf5dc6127 shut down MSVC 14.0 C4800 warnings (#36) 2025-06-25 21:00:15 +02:00
joaquintides
2592193066 review feedback (#32)
* removed superfluous inline (Alexander Grund)
* made hasher equivalence a precondition for &=/|= (Andrzej Krzemienski)
* documented exception safety guarantees (Andrzej Krzemienski)
* mentioned Bloom filters are called so after Burton H Bloom (Dmitry Arkhipov)
* added warning about OOM for very small FPR (Ivan Matek)
* stressed config chart x axis is capacity/num elements rather than plain capacity (Ivan Matek)
* s/[SIMD] is available/is enabled at compile time (Ivan Matek)
* shut down clang-tidy warnings (Ivan Matek)
* used "set union" for more clarity (Andrzej Krzemienski)
* stressed early on that boost::bloom::filter is _not_ a container (Claudio DeSouza)
* added bulk operations to roadmap (Dmitry Arkhipov)
* added try_insert to roadmap (Konstantin Savvidy)
* added estimated_size to roadmap (Konstantin Savvidy)
* added alternative filters to roadmap (Konstantin Savvidy)
* used <cstdint> instead of <boost/cstdint.hpp> (Rubén Pérez)
* mentioned endianness when serializing filters (Rubén Pérez)
* corrected sloppiness about optimum k determination (Tomer Vromen)
* added run-time specification of k to roadmap (Tomer Vromen)
* added test/CMakeLists.txt (Rubén Pérez)
* added CMake-based testing to GHA (Rubén Pérez) (#8)
* added <boost/bloom.hpp> (Rubén Pérez)
* added Codecov reporting (Rubén Pérez) (#9)
* moved from boost::unordered::hash_is_avalanching to ContainerHash's boost::hash_is_avalanching (Ivan Matek/Peter Dimov)
* added syntax highlighting to code snippets (Rubén Pérez)
* avoided C-style casts in examples (Rubén Pérez)
* added acknowledgements section (Peter Turcan)
* added Getting Started section (Peter Turcan)
* fixed example Jamfile and added example building to CI (Rubén Pérez) (#10)
* added diagram about overlapping vs. non-overlapping subarrays (Rubén Pérez/Ivan Matek/Vinnie Falco)
* made first code snippet self-contained (Rubén Pérez/Peter Turcan)
* added more comments to genome.cpp (Rubén Pérez)
* added support for arrays as blocks (Tomer Vromen) (#24)
* removed emplace (Seth Heeren/Peter Dimov) (#25)
* required the allocator to be of unsigned char (Seth Heeren/Peter Dimov) (#26)
* added compile-time validation of Block types (Rubén Pérez) (#27)
* added value type to displayed filter names in tables (Tomer Vromen) (#28)
* used -march=native rather than -mavx2 (Ivan Matek)
* adopted hash strategy with fastrange plus a separate MCG (Kostas Savvidis/Peter Dimov) (#30)
* several maintenance commits
2025-06-24 23:27:54 +02:00
joaquintides
6d35bb823f fixed naming (s/mulx64/umul128, s/mulx64_mix/mulx) 2025-04-26 10:23:36 +02:00
joaquintides
e9cfb2318c added array (#4)
* added data

* stylistic

* replaced data() with span-returning array()

* removed pass:[...] in listing

* editorial/typos
2025-04-08 16:47:59 +02:00
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