You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tracking follow-up β awaiting triage. No action label applied yet; leaving label/triage to the maintainer.
Context
PR #87 (Refs #78) made robust_crossing's antipodal-disambiguation step on_minor_arc exactly SoS-hardened: each wedge sign is now decided on a canonical, identity-sorted evaluation with an identity-keyed symbolic perturbation tie-break, so the predicate is total and reorder-invariant with no residual f64 sign sensitivity at endpoint coincidence.
Before that change, the caveat at src_rust/src/coverage.rs:442 noted that boundary cells affected by on_minor_arc's residual float sensitivity were caught by the node_straddles over-refinement safety net β such cells are refined (descended into) rather than filled whole. Now that the disambiguation is exact, that safety net may be loosenable: some cells the descent currently over-refines for safety might be safely fillable, reducing output size / work.
Re-scope (post PR #106 / issue #103) β supersedes the plan below where they differ
PR #106 replaced the entire crossing pipeline with the uniform symbolic predicate (arcs_cross_sos + exact determinant signs), so the node_straddles over-refinement is no longer load-bearing for correctness anywhere β it is now pure conservatism, and this issue's measure-then-relax program can be run safely. Adjustments:
Guard rail: PR Uniform symbolic crossing predicate: fix base-cell-boundary mis-fillΒ #106's parity oracle (debug_assert in the descent) validates every uniform cell against the independent winding PIP β any relaxation experiment runs under it in the test profile, which the original plan lacked.
Recommendation
Measure before changing behavior. Specifically:
Quantify the over-refinement node_straddles currently causes (count of cells refined-not-filled, excluding closed-set boundary-touch refinements, across representative polygons) against the exact-predicate baseline.
Only then decide whether/how to relax the containment, with the measurement as the baseline to confirm no coverage correctness regression.
Do not change descent/containment behavior blind β the current over-refinement is conservative-correct, so any relaxation must be justified by a measured win and guarded by tests (and the parity oracle).
π€ from Claude
Tracking follow-up β awaiting triage. No action label applied yet; leaving label/triage to the maintainer.
Context
PR #87 (Refs #78) made
robust_crossing's antipodal-disambiguation stepon_minor_arcexactly SoS-hardened: each wedge sign is now decided on a canonical, identity-sorted evaluation with an identity-keyed symbolic perturbation tie-break, so the predicate is total and reorder-invariant with no residual f64 sign sensitivity at endpoint coincidence.Before that change, the caveat at
src_rust/src/coverage.rs:442noted that boundary cells affected byon_minor_arc's residual float sensitivity were caught by thenode_straddlesover-refinement safety net β such cells are refined (descended into) rather than filled whole. Now that the disambiguation is exact, that safety net may be loosenable: some cells the descent currently over-refines for safety might be safely fillable, reducing output size / work.Re-scope (post PR #106 / issue #103) β supersedes the plan below where they differ
PR #106 replaced the entire crossing pipeline with the uniform symbolic predicate (
arcs_cross_sos+ exact determinant signs), so thenode_straddlesover-refinement is no longer load-bearing for correctness anywhere β it is now pure conservatism, and this issue's measure-then-relax program can be run safely. Adjustments:edge_hits_cell_edge's exact-incidence path); those refinements are contract, not waste, and must be excluded from the "over-refinement" count.debug_assertin the descent) validates every uniform cell against the independent winding PIP β any relaxation experiment runs under it in the test profile, which the original plan lacked.Recommendation
Measure before changing behavior. Specifically:
node_straddlescurrently causes (count of cells refined-not-filled, excluding closed-set boundary-touch refinements, across representative polygons) against the exact-predicate baseline.Do not change descent/containment behavior blind β the current over-refinement is conservative-correct, so any relaxation must be justified by a measured win and guarded by tests (and the parity oracle).
Refs #87
Refs #78
Refs #103, PR #106