Skip to content

Conversation

@IceMimosa
Copy link
Member

SUMMARY

  • Describe your changes, including rationale and design decisions
  • If your pull request includes new functionality, then you must have corresponding new tests.
  • We require all Java files to be ASCII-only to avoid compatibility problems.

Automated Checks

  • I have run ./gradlew test and made sure that my PR does not break any unit test.
  • I have run ./gradlew checkstyleMain or the equivalent and corrected the formatting warnings reported.

xtonik and others added 30 commits November 2, 2023 16:25
* convert byte to int in a loop once only

* simplified comparison of byte arrays

* enrolled version should be the fastest

* some compareTo methods can be replaced by more simple and performant appropriate equals() method

* avoid duplicate method call

* closely related unnecessary local variable

* checkstyle

* comparison of reference is unnecessary

* unnecessary local variable

* condition covered by subsequent conditions

* mismatch simplification

* use long instead of byte[6]

* avoid backward value conversion, when original is available

* mismatch() has to return length of shorter array, when all elements are equal

* bugfix: bytes are reordered

* bugfix: low 6 bytes, not high ones

* bugfix: two different conditions cannot be merged into one
* Skip unnecessary offset computations

* Skip unnecessary offset computations for mappable bitmap
* advanceIfNeeded optimization

* expected and actual value swap

* cleanup mesh & warnings

* temporary performance comparison removed

* Update jmh/src/jmh/java/org/roaringbitmap/AdvanceIfNeededBenchmark.java

Co-authored-by: Daniel Lemire <daniel@lemire.me>

---------

Co-authored-by: Daniel Lemire <daniel@lemire.me>
* real iand between run and array container

* faster run container iteration

* real iandnot between array and run container

* real iandnot between array and run mappable container
* avoid compute cardinality for run container using contains() instead

* benchmark for optimized checkedAdd()

* benchmark uses enums for testing scenarios
* use isEmpty() on bitmap instead of getCardinality()

* not empty is correct
* skip use numberOfTrailingZeros() if value is equal to zero

* replaceChildren() optimization for Node256

* use of toUnsignedInt() when values are not empty

* replaceChildren() simplification for Node4 and Node16

* replaceChildren() optimization for Node48

* unintended import change

* temporary benchmark removed
* benchmark for removal top values from bitmap

* remove current value when iterating on bitmap works properly

* use remove() to delete first K values
* Added unit test for expose batchiterator.advanceIfNext bug

* Fix batchiterator's advanceIfNeeded to logic to handle run lengths of zero

* Addressed comments
…n from array containers to bitmap (#683)

* code deduplication in ior() for array containers

* code deduplication when converting to bitmap from array containers

* use ixor() instead of xor() to avoid cloning
…ap slice index (#693)

* use isEmpty() on bitmap instead of getCardinality()

* not empty is correct
* avoid compute cardinality for run container using contains() instead

* benchmark for optimized checkedAdd()

* benchmark uses enums for testing scenarios
* benchmark for removal top values from bitmap

* remove current value when iterating on bitmap works properly

* use remove() to delete first K values
* addOffset() optimized for array containers

* avoid use of local variable for optimized version

* use of local variable variant is the most performant

* renamed methods due to their confusing overloading
* rangeMask simplification

* rangeMask from number of slices simplification
* benchmark for deserialization mutable bitmaps

* avoid long buffer duplication

* avoid copy whole long array

* avoid long buffer duplication
* select from right if index is in upper half of cardinality

* skip zeroes

* benchmark for select from both sides

* bugfix

* variable name correction
mkeskells and others added 30 commits August 25, 2025 21:38
…ble-dip

calculate the Node at a key in a single step
* avoid compute cardinality of run container within checkedRemove

* Removed benchmark used for validating optimization

---------

Co-authored-by: xtonik <xtonik@proton.me>
* escape the loop when container with higher key is found

* Removed benchmark used for validating optimization

---------

Co-authored-by: xtonik <xtonik@proton.me>
…operations for dense RoaringBitmaps (#813)

* a two-level succinct data structure that provides constant-time rank operations for dense RoaringBitmaps

* addressed the feedback from

* addressed the feedback around the documentations

---------

Co-authored-by: gerald.green <gerald.green@workday.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.