Skip to content

Releases: tlk00/BitMagic

BitMagic release v3.15.0

27 Oct 18:47
Compare
Choose a tag to compare
  1. Implemented new API for right shift of bit-vectors
    bvector<>::shift_right()

  2. Implemented fast aggregator SHIFT-AND for pattern searches.

  3. New example for fingerprint based substring search (xsample04.cpp)
    with SHIFT-AND bitap algorithm.
    Tech. note: http://bitmagic.io/dna-search.html

BitMagic release v3.14.5

08 Oct 14:11
af84866
Compare
Choose a tag to compare
  1. Optimizations for rank-select operations using rs-index, SIMD(SSE4.2, AVX2) and BMI2 instructions.
    Tech.note: http://bitmagic.io/rank-select.html
  2. New example (sample17.cpp) to illustrate use of rs-index.
    http://bitmagic.io/doxygen/html/sample17_8cpp-example.html

BitMagic release v3.14.0

26 Aug 02:17
Compare
Choose a tag to compare

Release Notes

  1. Implemented first version of Rank-Select bit-transposed sparse vector
    bm::rsc_sparse_vector<>. First succinct container part of BitMagic.
    see samples/rscsample01 for an introduction
    https://github.com/tlk00/BitMagic/tree/master/samples/rscsample01

  2. Added new advanced example (xsample03) implementing real-life scenario of searching for DNA mutation (SNP). https://github.com/tlk00/BitMagic/tree/master/samples/xsample03
    position by mutation id (rs#). Sample compares speed and memory consumption of the
    new bm::rsc_sparse_vector<>
    Tech.note: http://bitmagic.io/succinct-snp-search.html

BitMagic release v3.13.0

11 Aug 17:33
Compare
Choose a tag to compare
  1. Implemented a new utility bm::aggregator<> for fast logic (AND, OR, AND-SUB) operations on
    groups of vectors. Aggregator uses cache blocking techniques and other optimizations to
    work faster than pairwise operations.

  2. Added new example to illustrate use of new aggregator (see sample16.cpp)

  3. Sparse vector search utility class (scanner) for unordered sets bm::sparse_vector<> improved its
    performance 2-3x times (via use of bm::aggregator<>).

  4. Documentation update on unordered set search, new benchmark results.
    http://bitmagic.io/sparse-vector-search.html

BitMagic release v3.12.6

19 Jul 22:13
Compare
Choose a tag to compare
  1. Fixed crash on copying of empty bm::bvector<>
  2. Major optimization of bm::set2set_11_transform<> (4-5x times speedup)
    Details: http://bitmagic.io/set2set-assoc-remap-opt.html
  3. Reworked svsample05 to better explain use of bm::sparse_vector<> as associative container
    for set-to-set remapping operations
  4. Improved performance of logical OR operation on bm::bvector<>
  5. Implemented bm::sparse_vector<>::gather() for faster selective retrieval of values from
    bit-transposed containers. SSE4.2 and AVX2 optimizations for gather operation.
  6. Fixed some harmless but inconveninent compilation warnings
  7. Implemented new bm::bvector<> functions copy_range() and range copy constructor for
    faster horizontal partitioning
  8. Cleaned up warnings, sometimes treated as compilation errors

BitMagic release v3.12.0

13 Jun 23:15
Compare
Choose a tag to compare

bm-3.12.0.tar.gz

  1. Implemented const iterator for bm::sparse_vector<>
  2. Implemented back inserter for bm::sparse_vector<>
  3. Implemented new search algorithm utility class (bm::sparse_vector_scanner<>) for unordered sets stored in bm::sparse_vector<>
  4. Performance optimizations of common logical operations, construction and destruction of bm::bvector<>
  5. New bit-vector method to find relative bit position for the specified rank bm::bvector<>::find_rank(...)
  6. SIMD performance optimizations (minor) for AVX2 and SSE4.2
  7. Improved test code coverage, fixed a few rare bugs
  8. Improved build environment, cmake files and settings
  9. #define BMCOUNTOPT deprecated (potential thread safety issues)
  10. Added a few new examples

BitMagic release v3.11.0

24 Apr 23:18
Compare
Choose a tag to compare

Release Notes

  1. Performance optimizations (minor) for SSE4.2 and AVX2.
  2. Improved C-library (language mapping) to support CPU identification.
  3. Improved C-library to buils DLLs for various SIMD targets.
  4. bm::sparse_vector<> - optimizations to set/get single elements without full decode.
  5. bm::sparse_vector<> added support of NULL (unassigned) values for memory efficient construction of columnar databases.
  6. New algorithm: memory efficient sparse_vector<> algorithm for Theory of Groups Image operation (set to set transformation / remapping / etc) (see svsample05.cpp).
  7. Reworked some memory management for better compiler compatibility, cleaner code, less warnings.
  8. bm::bvector<> - added methods to find index of last set bit to determine dynamic range. (see sample15.cpp).
  9. bm::bvector<>, bm::sparse_vector<> - added method inc() for binary increment of an element.
  10. New example: implementation of counting sort / histogram build using sparse_vector<>, performance and memory benchmarks. (see xsample02.cpp)

BitMagic release v3.10.1

14 Feb 23:26
Compare
Choose a tag to compare
  1. BitMagic Library now licensed under Apache 2.0 license.
  2. Improved performance of enumerators.
  3. Added new algorithms to traverse bit-vector. Works a few times faster than enumerator.
  4. Improved memory management of serializations, fixed potential security vulnerabilities (buffer overrun).
    5.New AVX2 and SSE4.2 optimizations.
  5. Improved performance of sparse_vector<> extraction algorithms.

  6. Added new examples for some common use cases for bit-vectors.
  7. Continued improvement of BitMagic C library (libbm).
  8. Improved build environment for cmake to make various SIMD configurations easier.

BitMagic release v3.10.0

06 Jan 17:03
Compare
Choose a tag to compare
  1. added AVX2 optimization option (#define BMAVX2OPT)
  2. improved SIMD vectorization computational kernels for SSE2, SSE4.2
  3. faster testing for bits in compressed vectors
  4. bit-vector enumerator (bvector<>::enumerator) added random positioning, can now go to any arbitrary start point and traverse bits from it
  5. added bvector<>::count_to() to efficiently work with range bit counting and bit-vector based prefix sums
  6. new samples
  7. optimizations to bit counting, sparse_vector<> extraction, bit testing, etc

BitMagic release v3.9.0

28 Oct 13:48
Compare
Choose a tag to compare
  1. improved C++11 compatibility, added move constructors, assignmnets.
  2. improved performance of bm::sparse_vector<> container, faster import and export
  3. added libbm C library based on top of C++, but can be compiled without exceptions, RTTI, STL and C++ runtime dependency