Bugfix: Remove unintended view distance limit #387
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.
The
math::distance
normalizes the input vectors as part of its computation, which results in a loss of precision when an input vector is large.For situations where that matters, such as in
traversal.rs
, we usemath::mip
instead ofmath::distance
. Note that, when the input vectors are already pre-normalized, the distance formula simplifies to(-mip(a, b)).acosh()
, which is likely small enough to not need its own function.Note that the actual bug this fixes is that distance computations in
traversal::ensure_nearby
were resulting inNaN
, which caused the loop to continue on forever, continuing to expand out the graph until running out of memory.