Skip to content

Commit 239196c

Browse files
authored
feat: finish correctness section (#2)
* complete the four correctness blobs * Reduce the main article height
1 parent 5cf10d7 commit 239196c

File tree

2 files changed

+29
-15
lines changed

2 files changed

+29
-15
lines changed

correctness.pug

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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/

style.less

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
@blue : #2374AB;
1414
@yellow: #FFCE56;
1515

16-
@overlap : 300px;
16+
@overlap : 200px;
1717
@article_gap: 20px;
1818

1919
@small-screen-query: ~"screen and (max-width: 978px)";

0 commit comments

Comments
 (0)