Skip to content

Constructors, Iterators, and Convenience

Compare
Choose a tag to compare
@Cydhra Cydhra released this 09 Jul 20:34
· 23 commits to master since this release

New Features

  • RsVec implements several comparison methods (sparse_equals, full_equals), as well as the PartialEq trait which dynamically switches between those implementations according to my benchmark results.
  • BitVec and RsVec implement new constructors. Take a look at docs.rs to see what's possible now!
  • BitVec, BinaryRmq, and FastRmq can be created from u64 Iterators.
  • Several constructors are also available as From<T> implementations now
  • Added the simd crate-feature which gates some (unsafe) vectorization in RsVec, and a vectorized alternative iterator (RsVec::bit_set_iter0, RsVec::bit_set_iter1)
  • RsVec::iter1 and RsVec::iter0 now also have an owning version: RsVec::into_iter1
  • RsVec::iter1 and RsVec::iter0 are now double-ended iterators

Improvements

  • Added several examples to the documentation of BitVec
  • Iterating an Elias-Fano Vector is about 20% faster now
  • FastRMQ is 3-4% faster on vectors that fit in L3

Fixes

  • BitVec::get_bits and RsVec::get_bits could fail when querying 64 bits from an index not aligned to the vector limbs