Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync fork #3

Open
wants to merge 168 commits into
base: bitlap
Choose a base branch
from
Open

Sync fork #3

wants to merge 168 commits into from

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.

lemire and others added 30 commits October 31, 2023 14:58
* common routine for counting new capacity in RunContainer

* common routine for counting new capacity in MappeableArrayContainer

* common routine for counting new capacity in MappeableRunContainer

* common routine for counting new capacity in ArrayContainer

* checkstyle
* already optimal mappable array constructors

* container materialising already done
* binary search from start index

* incorrect start index

* binary search from start index also in MappeableRunContainer
* 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 <[email protected]>

---------

Co-authored-by: Daniel Lemire <[email protected]>
* 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
lemire and others added 30 commits October 23, 2024 19:18
Co-authored-by: haiyang.zhou <[email protected]>
Co-authored-by: haiyang.zhou <[email protected]>
Co-authored-by: Daniel Lemire <[email protected]>
* trying spotless

* Small change

* CherryPick latest build.gradle.kts with Spotless

* Spotless with latest configuration

* Setup ratchetFrom

* Add comments

* Change Spotless version to 6.25.0, latest stabl;e

* .gitignore handles .java-version

* Apply suggested importOrder

* Clean wildcard imports, and prevent them with Spotless

---------

Co-authored-by: Daniel Lemire <[email protected]>
…compatible with roaring(Go)) (#760)

* add NavigableMapSliceIndex support

* close datainputstream after deserialize

* small changes

* 1. code fix for CR; 2. add serializationMode local variable; 3. support legecy/portable(default) serialization mode for Roaring64NavigableMapSliceIndex

* 1. add more documents
2. keep Roaring64NavigableMap.SERIALIZATION_MODE public & static
3. remove ser/deser using bytebuffer

* 1. keep SERIALIZATION_MODE in Roaring64NavigableMap
2. add 'DEFAULT_BSI64_NAVIGABLE_SERIALIZATION_MODE' in Roaring64NavigableMapSliceIndex
3. add a go-compatable serialization format in
   Roaring64NavigableMapSliceIndex, leave others unimplemented

* --author=haiyang.zhou <[email protected]>
1. add sanity checks in test
2. add documents about limit of Roaring64NavigableMap.clone

* tiny modification of javadoc

* set minValue and maxValue when deserialize & clone

* make minValue() and maxValue() public, and and some assertions in unittests

* add some assertions in unittests

---------

Co-authored-by: haiyang.zhou <[email protected]>
Co-authored-by: haiyang.zhou <[email protected]>
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.