@@ -4,30 +4,44 @@ block content
44 article
55 h2 Correctness
66 p
7- | Computational Geometry is notoriously difficult to get right. The
7+ | Computational Geometry is notoriously difficult to get right. From 1972 to 1989, 7 out of 16 published
88 |
9- a( href ="https://en.wikipedia.org/wiki/Convex_hull_of_a_simple_polygon" ) convex hull algorithm
9+ a( href ="https://en.wikipedia.org/wiki/Convex_hull_of_a_simple_polygon" ) convex hull algorithms
1010 |
11- | is a prime example of this: From 1972 to 1989, 16 solutions were published
12- | in peer-reviewed journals and 7 of them turned out to be wrong.
11+ | were wrong.
12+ sup
13+ a( href ="https://cgm.cs.mcgill.ca/~athens/cs601/" ) [1]
1314 p
14- | So, why should you believe RGeometry is correct?
15- | To answer this we have to look at RGeometry's design and talk about how it
16- | leads to strong guarantees and predictable behaviour.
15+ | Why trust RGeometry? Our design provides strong guarantees and predictable behavior.
1716 article.feature
1817 h3 Fixed precision vs arbitrary precision
19- article.feature
20- h3 Derived Data
18+ p
19+ | While research often assumes infinite precision, RGeometry supports both arbitrary and fixed-precision modes.
20+ | We avoid precision loss through exact geometric primitives—for example, comparing distances without computing them.
21+ p
22+ | All algorithms are tested with 8bit, 16bit, 32bit, and 64bit integers, plus 32bit and 64bit floating-point.
2123 article.feature
2224 h3 Property testing
23- h4 Random Polygons
24- h4 Convex Polygons
25- h4 Monotone Polygons
26- article.feature
27- h3 Emperical testing
25+ p
26+ | RGeometry uses comprehensive property testing to ensure correctness. We generate diverse test data including
27+ | convex polygons, monotone polygons, star-shaped polygons, and two-opt polygons across multiple precision levels.
28+ p
29+ | All documented API properties are verified through automated testing. Additionally, efficient algorithms are validated
30+ | against slower but provably correct reference implementations.
2831 article.feature
2932 h3 Simulation of Simplicity
33+ p
34+ | RGeometry has first-class support for Simulation of Simplicity (SoS)
35+ sup
36+ a( href ="https://en.wikipedia.org/wiki/Herbert_Edelsbrunner" ) [2]
37+ | , which eliminates geometric edge cases by perturbing degenerate configurations. This makes algorithms easier
38+ | to verify and implement correctly.
3039 article.feature
3140 h3 Floating-point
41+ p
42+ | Fixed-precision floating-point arithmetic is notoriously difficult to get right but widely used in practice.
43+ | The value space is enormous, making edge cases nearly impossible to discover through random sampling alone.
44+ | RGeometry addresses this by testing algorithms in 8-bit integer space, where the smaller value space
45+ | makes edge cases much easier to trigger and verify.
3246
3347//- http://cgm.cs.mcgill.ca/~athens/cs601/
0 commit comments