You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Conjunctive normal form (CNF) is a notation to represent some operations frequently used in a few niches. It can be seen as an extension of a feature we already support, which is union and intersection of many bitmaps at a time.
The idea is to come up with an API to pass a list (or, rather, array) of bitmaps for which to perform this efficiently and with minimal intermediate bitmap creation. A way to just compute cardinality in a memory efficient way sounds like a good idea as well.
If the proposal gains interest I may try to implement it, as it's useful for a project I work with.
where n_conj tells us the number of intersections to perform, or the number of clauses we will be passing, and the varargs would be the clause_t typed clauses to intersect, each of which will have all of their contents unioned first.
The text was updated successfully, but these errors were encountered:
On a related issue: while I care most about the C version here, implementing in roaring first as an experiment may be a better idea, since it makes it easier to compare performance between several versions. Specially between only performing multiple unions at a time, having intermediate bitmaps for each clause, and multiple intersections of the results.
It could be an interesting convenience function either way.
Conjunctive normal form (CNF) is a notation to represent some operations frequently used in a few niches. It can be seen as an extension of a feature we already support, which is union and intersection of many bitmaps at a time.
The idea is to come up with an API to pass a list (or, rather, array) of bitmaps for which to perform this efficiently and with minimal intermediate bitmap creation. A way to just compute cardinality in a memory efficient way sounds like a good idea as well.
If the proposal gains interest I may try to implement it, as it's useful for a project I work with.
An example of such an API would be:
where
n_conj
tells us the number of intersections to perform, or the number of clauses we will be passing, and the varargs would be theclause_t
typed clauses to intersect, each of which will have all of their contents unioned first.The text was updated successfully, but these errors were encountered: