-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Reformulate a cross product to increase precision #7732
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
in general, CGAL with avx is itself slower
afabri
reviewed
Oct 4, 2023
Surface_mesh_simplification/test/Surface_mesh_simplification/test_edge_collapse_stability.cpp
Outdated
Show resolved
Hide resolved
Co-authored-by: Andreas Fabri <[email protected]>
Successfully tested in CGAL-6.0-Ic-84 |
sloriot
reviewed
Oct 15, 2023
Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_surface_mesh.cpp
Show resolved
Hide resolved
lrineau
added
the
rm only: ready for master
For the release team only: that indicates that a PR is about to be merged in 'master'
label
Oct 16, 2023
lrineau
removed
the
rm only: ready for master
For the release team only: that indicates that a PR is about to be merged in 'master'
label
Oct 16, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary of Changes
The Lindstrom-Turk simplification method can suffer from significant numerical errors when the point coordinates are large (or there is a big difference of magnitude between coordinates). The main source was one cross product.
A few fixes were tried before settling on a reformulation of the cross product based on the assumption that points will be nearby and have similar coordinates. It's not the best method for stability, but the others are too expensive.
I'm leaving the code in case this pops up again in the future.
Note: Garland-Heckbert simplification has no such issues.
Release Management
Surface_mesh_simplification