History of Releases

v8.0.0

July 1, 2024

New serialization format for bit-vectors and sparse vectors. Better compression, backward compatible (new code can read old vectors). More

v7.13.4

May 12, 2023

Bug fixes, new functionality for swapping bits. More

v7.12.3

July 14, 2022

Bug fixes and optimization of compressive string binary search, aggregator, etc. More

v7.11.2

Apr 17, 2022

Bug fixes and optimizations for immutable vectors. More

v7.10.3

Feb 14, 2022

Implemented immutable vectors and improved rank-select compressive vector. More

v7.9.3

Jan 06, 2022

Improved APIs for succinct vectors, optimizations, fixed bugs in NULL-able string vector. More

v7.8.0

Nov 28, 2021

Set of new index-free search methods on compressive memory vectors. SSE2 optimizations, first release of ARM NEON optimizations. More

v7.7.7

Nov 12, 2021

OR-AND fused operation for bit-vectors and pipelines. Major bm::aggregator<> improvements to auto-tune searches for L2 cache size. More

v7.6.0

Oct 17, 2021

Major bm::scanner<> improvements to support pipelined bulk searches. More

v7.5.0

Sept 12, 2021

Support for signed integer types, string sparse vector resizes string length automatically, C++ 17. More

v7.4.0

July 4, 2021

3-valued logic on bit-vectors. WebAssembly SIMD support. Bug fixes. More

v7.3.0

Jan 26, 2021

Improved XOR compression of succinct sparse vectors. Bug fixes. More

v7.2.0

Sept 24, 2020

Improved compression of succinct sparse vectors. Faster const_iterator. More

v7.1.0

Sept 9, 2020

Critical bug fix in AND operation, platform specific optimizations for ARM CPU. More

v7.0.0

July 30, 2020

Improved compression using Binary Interpolatice Coding. 5-6% better compression rate based on Gov2 corpus of inverted lists. More

v6.4.0

May 13, 2020

Rank-Select compressed container improved for fast random access of known elements, compiler and bug fixes. More

v6.3.0

April 1, 2020

Rank-Select compressed container improved fast decode functions and const iterator. More

v6.2.0

March 8, 2020

New APIs for ranges and intervals, bm::inetrval_enumerator<> for bit-vector traversal as ranges. More

v6.1.0

Feb 8, 2020

2-5x faster WebAsm, new bvector<> methods for ranges and inetrvals More

v6.0.0

Jan 20, 2020

New serialization, supports bookmarks and range deserialization More

v5.4.0

Dec 8, 2019

New algorithm for mismatch search in sparse vectors. More

v5.3.0

Nov 28, 2019

Bit-vector search for the first mismatch bit. More

v5.2.0

Oct 15, 2019

Support of selective(gather) deserialization of sparse vectors. More

v5.1.1

Sept 15, 2019

Support of WebAssemblies. Improved compression in back insert iterators. More

v5.0.0

July 20, 2019

Binary Interpolated Encoding of bit-vectors improves compression rate. More

v4.0.0

June 26, 2019

64-bit index space support for big data problems. More

v3.20.0

March 19, 2019

Implemented set of iterators for bm::str_sparse_vector<> - bit-transposed succinct container for strings More

v3.19.0

Jan 16, 2019

Implemented 3-operand logical functions for bvector<>. New examples and tutorial for Algebra of Sets. More

v3.18.0

Dec 26, 2018

String sparse vector for dictionaries str_sparse_vector<> improved to support succinct remapping and faster binary and scan searches. More

v3.17.0

Dec 5, 2018

bit-block complexity detection reworked for SSE4.2 and AVX2. First version of string sparse vector for dictionaries. More

v3.16.0

Nov 11, 2018

New methods and tools for fast construction of bit-vectors. More

v3.15.0

Oct 28, 2018

New shift-right functionality for pattern matching, fused SHIFT-AND fast aggregator, optimizations for AVX2/BMI and SSE4.2 SIMD sets. More

v3.14.5

Oct 5, 2018

Optimizations for rank-select operations, implemented SIMD and BMI2 accelerated RS-index. More

v3.14.0

Aug 25, 2018

Initial version of succinct sparse vector bm::rsc_sparse_vector<> New container offers very low memory footprint with ability to access elements and effciently search for data. More

v3.13.0

Aug 10, 2018

Implemented a new utility class bm::aggregator<> for fast logic (AND, OR, AND-SUB) operations on groups of vectors. Performance of sparse vector scanner (search) inproved 3x times. More

v3.12.6

July 20, 2018

Major optimization of associative remapping using bm::sparse_vector<>. Fixed some crash on empty copy, fixed warnings, added new range based bm::bvector<> range copy constructor and methods. More

v3.12.0

June 15, 2018

Implemented const iterator and bult insert iterators for bm::sparse_vector<>. Added new algorithm for search in bm::sparse_vector<>. Performance optimization of AND and SUB logical ops, SIMD optimizations, new method for rank search bm::bvector<>::find_rank(...). More

v3.11.0

April 27, 2018

Improved C language mapping, added DLL builds for variants of SIMD acceleration, added auxiliary library for CPU identification. Optimized and functionally improved bm::sparse_vector<> container. bm::bvector<> added new methods to binary increment bits, fast clear bits, improved performance. Added new examples. Cleaned code for better compatibility and less warnings. More

v3.10.1

February 11, 2018

Apache 2.0 License, more SSE4.2 and AVX2 optimizatoins, performance improvements to sparse_vector<>, new examples/benchmarks. Improved C library libbm. Better cmake build scripts. More

v3.10.0

January 7, 2018

Initial release of AVX2 optimizations, general and SSE4.2 performance improvements, new bvector<>::count_to() method, optimizations of sparse_vector<>. More

v3.9.0

October 28, 2017

Better support of C++11 move constructors, minor performance optimizations, initial version of C language libbm library (a lean wrapper on top of C++). More

v3.8.0

September 10, 2017

First version of bit transposed sparse vector, minor bug fixes and documentation improvements. More