Implement Phase-Session P1 quick wins (4 independent additions):
9h.1: Add --tol and --max-iter CLI options to conformallab_core
- Newton solver tolerance [default 1e-8]
- Newton iteration limit [default 200]
- Thread both through run_euclidean / run_spherical / run_hyper_ideal
- Update CLI parameter table in documentation
9h.2: Add -g cp_euclidean and -g inversive_distance geometry routes
- run_cp_euclidean() & run_inversive_distance() pipelines (~60 lines each)
- Face-based DOF assignment for CP-Euclidean
- Vertex-based DOF assignment for Inversive-Distance
- Both integrated into CLI geometry validator (IsMember)
9g.1: Create conformal_quality.hpp with validation measures
- IsothermicityMeasure: metric anisotropy (conformality deviation)
- DiscreteConformalEquivalenceMeasure: length-cross-ratio residuals
- FlippedTriangles: detects inverted/degenerate triangles
- LengthCrossRatio: discrete conformal invariant computation
- ConvergenceUtility: aggregated convergence statistics (max/mean/sum)
- Ported from Java: plugin/visualizer + convergence utilities
- Includes sanity tests validating finite outputs on valid layouts
9d.3: Create stereographic_layout.hpp for S² → ℂ projection
- Stereographic projection from north pole: S² → ℂ ∪ {∞}
- Inverse projection: ℂ → S² for round-trip validation
- Möbius centring: centres the 2-D point cloud at origin
- stereographic_layout(Layout3D) -> Layout2D conversion
- Round-trip tests: south pole, equator, random sphere points
- Tests: projection/inverse consistency, north pole handling
Test results: 336/336 CGAL tests pass (272 pre-existing + 64 new from all phases)
- conformal_quality.cpp: 13 new tests (measures, isothermic, dce, convergence)
- stereographic_layout.cpp: 10 new tests (projection, inverse, round-trip, layout)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
41 lines
1012 B
JSON
41 lines
1012 B
JSON
{
|
|
"$schema": "https://json.schemastore.org/claude-code-settings.json",
|
|
"env": {
|
|
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
|
|
},
|
|
"teammateMode": "tmux",
|
|
"permissions": {
|
|
"allow": [
|
|
"Bash(cmake:*)",
|
|
"Bash(ctest:*)",
|
|
"Bash(nice:*)",
|
|
"Bash(./build/conformallab_tests:*)",
|
|
"Bash(./build/conformallab_cgal_tests:*)",
|
|
"Bash(bash scripts/quality/*)",
|
|
"Bash(bash scripts/*)",
|
|
"Bash(python3 scripts/*)",
|
|
"Bash(codespell:*)",
|
|
"Bash(shellcheck:*)",
|
|
"Bash(git status:*)",
|
|
"Bash(git diff:*)",
|
|
"Bash(git log:*)",
|
|
"Bash(git show:*)",
|
|
"Bash(git branch:*)",
|
|
"Bash(git ls-remote:*)",
|
|
"Bash(git ls-files:*)",
|
|
"Bash(ls:*)",
|
|
"Bash(find:*)",
|
|
"Bash(grep:*)",
|
|
"Bash(rg:*)",
|
|
"Bash(wc:*)",
|
|
"Bash(curl -s*)"
|
|
],
|
|
"deny": [
|
|
"Bash(git push --force* origin main*)",
|
|
"Bash(git push -f* origin main*)",
|
|
"Bash(git reset --hard*)",
|
|
"Bash(rm -rf /*)"
|
|
]
|
|
}
|
|
}
|