-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Specialize DisiPriorityQueue for the 2-clauses case. #14070
base: main
Are you sure you want to change the base?
Conversation
Disjunctions with 2 clauses are rather common. Specializing this case enables some shortcuts.
Here are results on wikibigall. Several queries have a speedup with a very low p-value.
|
This PR has not had activity in the past 2 weeks, labeling it as stale. If the PR is waiting for review, notify the [email protected] list. Thank you for your contribution! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Left one minor comment, but I think it's on pre-existing code so feel free to ignore if you like :)
if (w.doc == list.doc) { | ||
list = prepend(w, list); | ||
final int left = leftNode(i); | ||
final int right = left + 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: should we use rightNode(left)
since we have it defined?
Hmm is this PR accidentally dying on the vine @jpountz? |
Not completely accidentally, I wanted to merge the more impactful changes I had on my plate before taking another look at the impact of this PR. I'll get back to it shortly. |
Disjunctions with 2 clauses are rather common. Specializing this case enables some shortcuts.