numerically stable radius penalty #1063
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.
previously, I smoothed the radius of curvature calculation by adding 1e-2 to the denominator. This avoided it going to infinity for infinitely straight edges. However, when the actual radius of curvature was close to 1e-2 it gave inaccurate results. Instead, I made the penalty function a numerically stable version for x > 0, which solves the issue more generally.
old
penalty(x) = 1/(1 + exp(x))
new
penalty(x)= exp(-x)/(1 + exp(-x))