Comments (5)
Seems like the allowed deviation need to be loosened a little for the failing fixtures to accommodate your architecture and compiler configuration. Functionally I wouldn't worry about it though.
from earcut.hpp.
I agree, and I’m planning to patch in a looser bound downstream as I package this library for Fedora Linux.
If it matters, the compiler is gcc 11.2.1, and there are no particularly exotic compiler flags in use.
Is there any interest in special-casing this test to accommodate these architectures upstream? If not, it’s probably best to close this issue.
Thanks for your feedback.
from earcut.hpp.
I'm not averse to merging changes to support the library/tests on more platforms. That being said, unless we create travis-ci instances testing the builds on these architectures, there is no guarantee there won't be changes in the future breaking it for those arch's again.
from earcut.hpp.
I had a similar problem in aarch64 which was solved by passing the flag -ffp-contract=off
to the compiler.
Such flag disables MADD
/ MSUB
instructions, which, as I found out, behave differently on aarch64 architectures when compared to x86.
Here is the topic that led me to do this: https://bugs.mysql.com/bug.php?id=82760
from earcut.hpp.
I had a similar problem in aarch64 which was solved by passing the flag
-ffp-contract=off
to the compiler. Such flag disablesMADD
/MSUB
instructions, which, as I found out, behave differently on aarch64 architectures when compared to x86. Here is the topic that led me to do this: https://bugs.mysql.com/bug.php?id=82760
Thanks. This is a good suggestion. I can confirm that it fixes this test on all three architectures without needing to loosen the tolerance.
Whether it is actually necessary or appropriate to disable floating-point contraction, or whether perhaps the tolerance is simply tighter than it needs to be, seems still to be an open question. For now, I’m going to leave the compiler flags as they are in Fedora, and keep loosening the tolerance.
from earcut.hpp.
Related Issues (20)
- 'cut' introduced in complex polygon HOT 1
- New test “issue142” in 2.2.4 fails on aarch64, ppc64le, s390x HOT 1
- Member function of Earcut Assumes that the point type has a size member function HOT 5
- Helper function for earcutting just a std::vector<> of points HOT 1
- Incorrect Triangulation HOT 1
- missing triangle HOT 2
- Builds wrong indices array for concave polygon HOT 2
- The Ear Point judgment HOT 2
- Coverity scan fails HOT 1
- Transfer Appveyor project to Mapbox? HOT 4
- Clang-Tidy static analysis warning: dereference of a null pointer HOT 2
- Issues with triangulating a polygon with 3d coords HOT 1
- How to clip with an outside polygon HOT 1
- Infinite loop in cureLocalIntersections HOT 2
- When I use Clipper to cut polygons, sometimes I get some separated polygons and some holes. How can I use earcut to process these separated polygons? HOT 8
- Endless loop in the filterPoints function HOT 1
- Any way to make this use even-odd rule? HOT 1
- Port infinite loop fix HOT 1
- Please consider adding a version tag on commit 6d18edf0ce046023a7cb55e69c4cd9ba90e2c716 or later HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from earcut.hpp.