-
Notifications
You must be signed in to change notification settings - Fork 91
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
Add range minimum query kernels #1764
Conversation
my first impression on turning |
L includes fill-in, A does not |
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.
Overall, a lot more documentation is necessary. Especially what the new classes in bit_packed_storage
and range_minumum_querry
are there for, and how they work together.
At least I can't properly review it right now, since there is too little information on what functions/classes are supposed to do.
Constexpr evaluation complexity too high
Co-authored-by: Marcel Koch <[email protected]>
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.
I would like to have the discussion on the description of lookup kernels resolved. The rest are smaller nits.
} | ||
} | ||
|
||
/** Returns the ballot number C(p, q). */ |
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.
Is it possible to describe in a few words the meaning of C(p, q)
in this context?
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.
I don't think there is any particularly useful description I could add here, beyond the definition above.
Quality Gate passedIssues Measures |
This adds a data structure to answer queries of the kind$\text{argmin}_{i \in [a,b]} \text{array}[i]$ in constant time. This will be used to speed up the computation of LCAs in the symbolic Cholesky algorithm, turning the counting step from $O(nnz(L))$ algorithm to a $O(nnz(A))$ algorithm.
The corresponding Wikipedia articles describe the algorithms pretty well https://en.wikipedia.org/wiki/Range_minimum_query, the constant time query is described in more detail in J. Fischer and V. Heun, “Space-Efficient Preprocessing Schemes for Range Minimum Queries on Static Arrays,” SIAM J. Comput., vol. 40, no. 2, pp. 465–492, Jan. 2011, doi: 10.1137/090779759.
TODO: