-
Improved str_sparse_vector<>::clear_all() - added parameter to reset remap matrix by default, which is safer (less surprises for the user). Method signature changed, this may cause some minor incompatibility issues.
-
New method bm::sparse_vector<>::get_unsigned_bits() - to extract partial value (only a few bits)
-
Optimizations of bm::bvector<>::inc() (minor)
-
Added bm::bvector<>::swap() - method to swap two bit positions - basis for implementing sort or shuffle algorithms on compressive memory structures
-
Added bm::sparse_vector<>::swap() - to help implement swap of shuffle algorithms on succinct vectors
-
Added new example strsvsample09 to showcase sort algorithm in compressive memory space.
-
Optimization for bit-vector deserialization algorithm to avoid frequent reallocations of top-level memory table. Especially important for large 48/64-bit mode bit-vectors.
-
optimizations of bm::bvector<>::import(), implemented memory reservation (important for large 48/64-bit imports).
-
Fixed bug with collaborative XOR compression, causing debug level asserts and inability to decode compressed vectors. Various code-cleanups to reduce warnings in different compilers, improves MSVC compatibility.
-
Fixed bug in incorrect binary search in compressive string vector (bm::sparse_vector_scanner<>)
-
Improved build system to better support Apple M2