Remove dummy edges before inplace permutation #5023
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
#5021 (comment) points that the check
edge_list.size() < std::numeric_limits<EdgeID>::max()
can be placed before the loop, but this check limits number of valid edges by2^32 - #dummy_edges
.PR implements a removal of dummy edges before a
util::inplacePermutation
call:✔️ number of edges is limited by
2^32
❌ an additional iteration over the list of edges, but potentially linearized removal can be faster due to caching
/cc @danpat
Tasklist
Requirements / Relations
Link any requirements here. Other pull requests this PR is based on?