Skip to content

difftest: curve.curve_p7 real Ellipse plane classification - #1049

Merged
bherbruck merged 3 commits into
tangency-labs:mainfrom
altvnk:fix/curve-p7-ellipse-plane
Oct 26, 2026
Merged

bherbruck merged 3 commits into
tangency-labs:mainfrom
altvnk:fix/curve-p7-ellipse-plane

Conversation

@altvnk

@altvnk altvnk commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Scoped completion claim

Units: curve.curve_p7.

In scope: one genuine fixed canonical Ellipse input and a successful
GlobalPropertyAnalysis(PlaneClassify) regression with complete geometric comb.
This adds concrete-kind/virtual-dispatch coverage to an existing algorithm, not a
new ellipse-specific algorithm. Existing circle shorthand remains a B-spline.

Expected edits:

  • crates/difftest/src/units/curve_curve_p7.rs
  • crates/solidcore-ffi/src/units/curve_curve_p7.rs
  • harness/cpp/shim/curve_curve_p7.cpp
  • fixtures/curve.curve_p7/analytic-plane-classification.json

Evidence: inspected main b206d3f5a38127dc3a0b6c511f1b45116826b341 has no
ordinary real-Ellipse constructor in this unit. A bounded noncanonical Rust probe
constructed the actual semiaxes-3/2 ellipse over angular [0,180], natural NURB
[0,1], classified y-1=0, and produced one ordered positive arc plus 150 comb
points and 150 vectors. Endpoints lie near (±2.598076211353316,1,0), midpoint
y=2. This probe is not C++ parity or a fresh-head build.

Reviewed protocol: fixed canonical origin/X/Y/radii/extent, no geometry payload,
new ordinary block [3,3] (kind/dimension). Use genuine Ellipse constructors in
both engines through the existing generic curve route and positions, preserving
old kinds 0–2, cache guards and transform bounds. Admit the new inherited
B-spline-backed capability without relaxing old Hermite/Line restrictions or
adding an operation-specific whitelist. Preserve the existing three-vector guard;
the fixture pads unused vectors rather than narrowing that validation.

Validation planned: fixture discovery/exact encoding/real-kind/domain tests;
successful range geometry and all ordered comb points/vectors; full 916-value
native output plus status; interior-comb perturbation; new-kind generic parser
admission and old-error-order controls; full unfiltered affected unit and
perturbation; formatting and CPP-enabled Clippy; independent final-diff review;
all canonical current-head native/value-share/exact-base gates. Compile the modified
shim against the existing reference libraries read-only, never a stale executable.

Preserve all old fixtures, generated inputs, RNG draws/seeds/minimum 3000, guard
decisions/error ordering for old kinds, result layouts, mismatches, formulas,
tolerances, floors and status. No production test/file, shared helper/interface,
cache, plan, workflow, reference-library or old-fixture edits. Any native mismatch
or extra production need blocks this coverage-only scope; do not hide it by
changing inputs, introducing deferrals or weakening validation/comparison.

Related PRs / dependencies: #1048 owns p4 distance-equation coverage, #1047 p6
Sphere coverage, #1041 p9 diagonals; all are independent unit-local paths.
#686 ellipse STEP and #1031/#1042 cache/interfaces remain untouched.
Available follow-ups: CCI and transformed-ellipse success paths are not newly
demonstrated by generic admission and are not reserved by this fixture scope.

Status / blockers / next step: scoped draft; implement only the reviewed four paths,
establish native parity, then await exact-head canonical CI. Maintainers retain
workflow authorization, approval, queue admission and merging.

Published draft: exact-head evidence

Head 96fdbdf9c051ad7a803d0ddc713f563f2f579d7a, safely synchronized with authoritative main f4d002bb0a6dc5d49928a80213eb9ade8cdab7bd.
Independent final source gate accepted fingerprint e0a2bf10613ccc66821fd06787a89dee3ec6c8ccdbad7cf88ba94300e2b783d3;
reviewed binary PR diff unchanged across safe upstream merge. All66oldfixtures,
minimum3000generated cases, RNG/seed inputs, guards and result layout are preserved.

7 focused CPP runner tests passed, including actual ffi::validate admission tests
PASS curve.curve_p7 cases=3067 passed=3067 failed=0 deferred=0 max_rel_err=0e0 with_values=3067 no_values=0 vacuous=0
SENSITIVE curve.curve_p7 perturbed=3067 detected=3067 unperturbed=0 deferred=0
CPP-enabled Clippy both changed Rust crates all-targets -D warnings: PASS
workspace formatting and diff checks: PASS
Operation / symbols Implementation Successful native comparison Remaining gap
Real Ellipse GlobalPropertyAnalysis(PlaneClassify), named upper-arc fixture Generic fixed canonical Ellipse leaf in unit-local builders, existing algorithm unchanged Status plus complete916ordered values compare, including one positive upper-arc range and150points/150vectors; endpoint plane/ellipse residuals and interior comb perturbation checked Concrete-kind dispatch coverage only, not a new ellipse algorithm; CCI/transformed-ellipse successful geometry not newly demonstrated

The existing THREE-vector guard is retained; unused fixture vectors are padded.
Comb samples cover the full natural interval in order, not only the retained arc.
Perturbing only sample75 comb-Y out[692] is detected with status/counts/range intact.
Protocol admission tests reside in this unit's runner and invoke real ffi::validate;
a prior separate FFI-package filter matched zero tests and is NOT counted as proof.
Identical match arms were consolidated without changing generator/RNG behavior.

Shared reference hashes/mtimes unchanged, no rebuild. This is local macOS evidence;
canonical Linux/default-workspace/value-share/exact-base gates remain mandatory.
Ready for review by explicit user instruction; canonical CI is still pending.

User-authorized review status

Marked ready for review at the user’s request after local native validation and independent source review. Canonical CI was authorization-blocked at the latest audit; this transition does not claim green CI, approval, queue admission or merge readiness. Maintainer workflow authorization and all required checks remain mandatory. No source commit or workflow configuration changed.

Co-Authored-By: GPT-6.1 Sol Fast <noreply@openai.com>
altvnk and others added 2 commits October 26, 2026 01:10
Add the canonical Ellipse to the generic p7 curve protocol and compare
complete positive-arc solutions and geometric comb records. Preserve old
guards, fixtures, generator inputs, numerical formulas and tolerances.

Co-Authored-By: GPT-6.1 Sol Fast <noreply@openai.com>
Co-Authored-By: GPT-6.1 Sol Fast <noreply@openai.com>
@altvnk

altvnk commented Oct 26, 2026

Copy link
Copy Markdown
Contributor Author

@bherbruck — exact published draft head 96fdbdf9c passed independent final source review,7focusedCPPtests (including actual FFI-admission checks), full native curve.curve_p7 3067/3067 cases, perturbation3067/3067, CPP-enabled Clippy and formatting. The real-Ellipse fixture compares all916ordered values plus status and detects an interior-comb-only change. Old fixtures/generator inputs/RNG/guards/tolerances remain unchanged. Canonical run40249056438 requires authorization and has executed zero jobs. Please inspect/authorize it; the PR remains draft pending all13canonical jobs/native/value-share/exact-base retention. No technical CI failure or merge-readiness claim.

@altvnk
altvnk marked this pull request as ready for review October 26, 2026 00:38

@bherbruck bherbruck left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved by the automated first-pass review: CI green, mergeable, no CI/build/dependency file changes, no red-flag patterns in added code (process/network/env/unsafe outside FFI/blobs/hidden unicode), 0 known-mismatch entries added. Logic is gated by CI and the difftest merge queue.

@bherbruck
bherbruck added this pull request to the merge queue Oct 26, 2026
Merged via the queue into tangency-labs:main with commit 7a8daa7 Oct 26, 2026
13 checks passed
@altvnk
altvnk deleted the fix/curve-p7-ellipse-plane branch October 26, 2026 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants