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.
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 header-only
cuspatial::join_quadtree_and_bounding_boxes
#861Add header-only
cuspatial::join_quadtree_and_bounding_boxes
#861Changes from 4 commits
4bfdf19
a5d1695
c5601e1
adb747a
6b872b3
33c184b
38deb71
57a7a1e
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
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.
Any reason to use a lambda here? It seems we should create the iterator as a variable instead.
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.
Yes, this lambda closes over variables that are updated each iteration of the loop.
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.
Do you mean that the iterators gets invalidated after every iteration of the loop?
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.
make_current_level_iter()
returns a zip iterator over thecur_{types,levels,node_idxs,bbox_idxs}
vectors, which represent the current level in the tree descent. Thedescend_quadtree()
call walks one level in the tree and returns vectors representing the next "current level."Similarly,
make_output_values_iter()
returns a zip iterator ofnum_results + out_{node,bbox}_idxs
.num_results
is updated by thedetail::find_intersections()
call.The iterators returned by these functions are used both in setting up the initial state of the the top-level quadrants, and in the loop that does the tree traversal. An earlier implementation tracked and updated these two iterators each iteration of the loop, but they were refactored into these lambdas in a cleanup PR.