Are predicates used in CDT safe? #99
-
It seams to me that predicates library can be easily fooled by flipping sign and/or swapping x,y coordinates of a point to form 4 exactly concyclic set of points. Results are not very optimistic ... any thoughts? Do you reproduce same behaviour?
EDIT:
I've narrowed the problem to the Dekker's product function. Forcing use of std::fma() solves the problem, probably at the cost of performance drop on platforms not having fma in hardware. |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 12 replies
-
O, horror! You are right. I managed to track the bug down, see the recent issue. Could you please check if the fix works for you? |
Beta Was this translation helpful? Give feedback.
-
Yea fixed.
|
Beta Was this translation helpful? Give feedback.
-
Funny it didn't come up any sooner 🤯 |
Beta Was this translation helpful? Give feedback.
-
I found this post That discusses potential drawbacks to Dekker's Algorithm as a software FMA implementation. This makes me think that I might be able to disable the FMA algorithm simply via compiler options. If not, then I think it may be possible to dig into one of the C librarys and find a software FMA implementation there that we can pull out and use here optionally. |
Beta Was this translation helpful? Give feedback.
O, horror! You are right. I managed to track the bug down, see the recent issue. Could you please check if the fix works for you?