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.
This is just a proof-of-concept.
I was interested to see how the Jump-and-Walk algorithm would compare to your existing methods of point location. It's meant to perform better with high density clusters of points, and doesn't need any pre-sorting or maintenance of data structures.
Understandably it's worse than bulk last-used because the vertices are sorted for bulk insertion.
![Screenshot 2025-01-22 at 12 25 21 pm](https://private-user-images.githubusercontent.com/635596/405439090-462254e1-e613-4930-93c6-04499c13202b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNTM5NDEsIm5iZiI6MTczOTI1MzY0MSwicGF0aCI6Ii82MzU1OTYvNDA1NDM5MDkwLTQ2MjI1NGUxLWU2MTMtNDkzMC05M2M2LTA0NDk5YzEzMjAyYi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQwNjAwNDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iM2ZhYmE2ZTkwYjAwMDgzN2E3YzU5NWI3MTljMjQ2ZmZjNjI3MjU0MGQ3OGM2NmYwYjVkNzkxYmVmN2FhYTgwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.jSOSuX7E2XhhRPcHr4WGosOpB6wVSpzy3i4eCpdNwCE)
It's consistently slower than the hierarchy for location, but requires no hierarchy management.
![Screenshot 2025-01-22 at 12 25 47 pm](https://private-user-images.githubusercontent.com/635596/405438961-a82da0a6-d3eb-4160-8746-94953f5efb63.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNTM5NDEsIm5iZiI6MTczOTI1MzY0MSwicGF0aCI6Ii82MzU1OTYvNDA1NDM4OTYxLWE4MmRhMGE2LWQzZWItNDE2MC04NzQ2LTk0OTUzZjVlZmI2My5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQwNjAwNDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jYTczMTYzYjgwN2RjNzI5YzljYWRlNWQ4NDY4YTJlMjRjZDUwN2UzYjE1OTY4MjkxMDE1N2VmNzUxNmUxYzQxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.RuDSSWCOQWHrARpwoSrmqML9kJhNabaTuZd8QS7d6LY)
The jump sampling count could probably be optimised a bit (and it's meant to be random rather than stepped, but I wanted determinism). Although I don't currently think there's a clear enough advantage to pursue it further, I thought I'd share the results in case you're interested (feel free to close this).