docs: fix stale version, CGAL header, add LOW_MEMORY_BUILD docs (U4+U5+U7+U8)
U4 (README.md:17) — status line: v0.9.0 → v0.10.0, test count 0 → 277
U5 (Discrete_conformal_map.h:6-16) — \file Doxygen block rewritten:
was: 'provides a single function … Spherical/hyperbolic scheduled for Phase 8b.2'
now: lists all three discrete_conformal_map_* functions already present,
plus pointers to the circle-packing companion headers
U7 (getting-started.md) — new 'Mode 4 — Low-memory build' section added
after Mode 3; shows CONFORMALLAB_LOW_MEMORY_BUILD=ON with -j1 and explains
the -O0 / no PCH / batch-1 tradeoffs for Raspberry Pi / ≤ 4 GB runners
U8 (README.md compile-time modes) — LOW_MEMORY_BUILD entry added to the
compile-time workflow code block with a one-line explanation and the
mandatory -j1 note
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -14,7 +14,7 @@ Algorithmic foundation:
|
||||
> DOI: [10.14279/depositonce-5415](https://depositonce.tu-berlin.de/items/8e2988b2-d991-45b5-aad5-9fb7988f3b2f) · CC BY-SA 4.0 ·
|
||||
> [Java original](https://github.com/varylab/conformallab) · [sechel.de](https://sechel.de/)
|
||||
|
||||
**Status:** v0.9.0 — Phases 1–9a complete, Phase 8b-Lite CGAL API surface. Newton solvers for **five** DCE models (Euclidean / Spherical / HyperIdeal / CP-Euclidean / Inversive-Distance), priority-BFS layout in ℝ²/S²/Poincaré disk, Gauss–Bonnet, tree-cotree cut graph, Möbius holonomy, period matrix (genus 1), fundamental domain, halfedge_uv texture atlas, JSON/XML serialisation, CLI app. Full test suite passing, 0 skipped — see [`doc/api/tests.md`](doc/api/tests.md) for the per-suite breakdown.
|
||||
**Status:** v0.10.0 — Phases 1–9b complete, Phase 8b-Lite CGAL API surface. Newton solvers for **five** DCE models (Euclidean / Spherical / HyperIdeal / CP-Euclidean / Inversive-Distance), priority-BFS layout in ℝ²/S²/Poincaré disk, Gauss–Bonnet, tree-cotree cut graph, Möbius holonomy, period matrix (genus 1), fundamental domain, halfedge_uv texture atlas, JSON/XML serialisation, CLI app. 277 tests passing, 0 skipped — see [`doc/api/tests.md`](doc/api/tests.md) for the per-suite breakdown.
|
||||
|
||||
---
|
||||
|
||||
@@ -75,6 +75,12 @@ cmake -S code -B build -DWITH_CGAL_TESTS=ON -DCONFORMALLAB_DEV_BUILD=ON
|
||||
# build at the cost of 5–15× slower test RUN. Neutral on macOS.
|
||||
cmake -S code -B build -DWITH_CGAL_TESTS=ON -DCONFORMALLAB_FAST_TEST_BUILD=ON
|
||||
|
||||
# Low-memory build: -O0, no PCH, unity batch 1, --no-keep-memory linker.
|
||||
# Drops cc1plus peak from ~700 MB to ~150 MB per TU. Use on Raspberry Pi
|
||||
# or any runner with ≤ 4 GB RAM. Always build with -j1.
|
||||
cmake -S code -B build -DWITH_CGAL_TESTS=ON -DCONFORMALLAB_LOW_MEMORY_BUILD=ON
|
||||
cmake --build build --target conformallab_cgal_tests -j1
|
||||
|
||||
# Pristine measurement: disable both performance levers, e.g. for
|
||||
# scripts/quality/coverage.sh that needs every TU compiled fresh.
|
||||
cmake -S code -B build -DWITH_CGAL_TESTS=ON \
|
||||
|
||||
@@ -7,13 +7,17 @@
|
||||
\file CGAL/Discrete_conformal_map.h
|
||||
\ingroup PkgConformalMapRef
|
||||
|
||||
User-facing entry point for the Discrete_conformal_map package.
|
||||
User-facing entry points for the Discrete_conformal_map package (Phase 8b-Lite).
|
||||
|
||||
This header provides a single function — `discrete_conformal_map_euclidean`
|
||||
— that computes a Euclidean discrete-conformal flattening of an open or
|
||||
closed triangle mesh. Spherical and hyperbolic variants are scheduled
|
||||
for Phase 8b.2 once the Euclidean pattern is validated by Phase 9a
|
||||
(Inversive-Distance functional).
|
||||
This header provides three functions covering all three DCE geometries:
|
||||
|
||||
- `CGAL::discrete_conformal_map_euclidean` — flat conformal map (ℝ²), open or closed mesh
|
||||
- `CGAL::discrete_conformal_map_spherical` — spherical uniformisation (S²), genus-0 mesh
|
||||
- `CGAL::discrete_conformal_map_hyper_ideal` — hyperbolic conformal map (H²), genus ≥ 1
|
||||
|
||||
For circle-packing models see the companion headers:
|
||||
- `<CGAL/Discrete_circle_packing.h>` — `discrete_circle_packing_euclidean` (CP-Euclidean)
|
||||
- `<CGAL/Discrete_inversive_distance.h>` — `discrete_inversive_distance_map` (Luo 2004)
|
||||
|
||||
\section Example Simplest usage
|
||||
|
||||
|
||||
@@ -75,6 +75,21 @@ cmake --build build -j$(nproc)
|
||||
> **Note:** `-DWITH_CGAL=ON` implies `-DWITH_VIEWER=ON`. Do not use this in headless
|
||||
> environments — it will fail with `Failed to find wayland-scanner`.
|
||||
|
||||
### Mode 4 — Low-memory build (RAM-constrained CI / Raspberry Pi ≤ 4 GB)
|
||||
|
||||
For machines where the CGAL build OOMs (peak ~700 MB per compilation unit at `-O3`):
|
||||
|
||||
```bash
|
||||
cmake -S code -B build -DWITH_CGAL_TESTS=ON \
|
||||
-DCONFORMALLAB_LOW_MEMORY_BUILD=ON
|
||||
cmake --build build --target conformallab_cgal_tests -j1
|
||||
```
|
||||
|
||||
`LOW_MEMORY_BUILD` applies four measures: `-O0` (no debug info), PCH off,
|
||||
unity batch size 1, `--no-keep-memory` linker flag. Drops cc1plus peak from
|
||||
~700 MB to ~150-200 MB per TU. Tests run ~15× slower at `-O0` but all pass.
|
||||
**Always use `-j1`** — parallel compilation would defeat the memory savings.
|
||||
|
||||
---
|
||||
|
||||
## Running a single test
|
||||
|
||||
@@ -539,11 +539,11 @@ exposed via the CGAL public API, but a CLI user cannot reach them.
|
||||
| U1 | README + 4 examples | Usability | 🔴 Critical | ✅ Fixed 2026-05-31 |
|
||||
| U2 | examples/ (missing) | Usability | 🔴 Critical | ✅ Fixed 2026-05-31 |
|
||||
| U3 | `contracts.md:16` | Doc error | 🟡 Medium | ✅ Fixed 2026-05-31 |
|
||||
| U4 | `README.md:17` | Stale | 🟡 Medium | 🟡 Open |
|
||||
| U5 | `Discrete_conformal_map.h:14` | Stale | 🟡 Medium | 🟡 Open |
|
||||
| U4 | `README.md:17` | Stale | 🟡 Medium | ✅ Fixed 2026-05-31 |
|
||||
| U5 | `Discrete_conformal_map.h:14` | Stale | 🟡 Medium | ✅ Fixed 2026-05-31 |
|
||||
| U6 | README + 2 examples | Stale | 🟡 Medium | 🟡 Open |
|
||||
| U7 | `getting-started.md` | Missing | 🟠 Minor | 🟡 Open |
|
||||
| U8 | `README.md` | Missing | 🟠 Minor | 🟡 Open |
|
||||
| U7 | `getting-started.md` | Missing | 🟠 Minor | ✅ Fixed 2026-05-31 |
|
||||
| U8 | `README.md` | Missing | 🟠 Minor | ✅ Fixed 2026-05-31 |
|
||||
| U9 | `layout.hpp` + example | Missing | 🟠 Minor | 🟡 Open |
|
||||
| U10 | `getting-started.md` | Missing | 🟠 Minor | 🟡 Open |
|
||||
| U11 | `conformallab_cli.cpp` | Roadmap | 🟠 Minor | 🟡 Open |
|
||||
|
||||
Reference in New Issue
Block a user