Establish complex-coordinate and projective semantics - #81
Merged
Merged
Conversation
Owner
Author
|
Follow-on exact-head acceptance for
A duplicate push-only run passed |
isomorphisms
marked this pull request as ready for review
September 15, 2026 19:20
isomorphisms
changed the base branch from
math/quadratic-hermitian-forms
to
Idriç
September 15, 2026 19:20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Establish the complex/projective structural layer on the now-merged quadratic/Hermitian work without turning the exact Gaussian-integer fixture into the general complex-number hierarchy.
Type boundary
ComplexCoordinates complex ncarries the coordinate count in the type and represents the structural shape of C^n for a concrete complex carrier.ComplexProjectivePoint complex ncarries a nonzero homogeneous representative with exactlyn + 1complex coordinates.projective_rescaling_witnessexpresses equality after one explicit nonzero common complex scale;Eq, vector addition, or multiplication for projective points;affine_to_projectiveimplements(z1,...,zn) -> [1:z1:...:zn];projective_first_chartis partial, and[0:1]in CP^1 stays outside the finite chart.The
complexcarrier is deliberately parametric. The current canonical line does not yet have a settled general real-scalar/precision hierarchy that can honestly define the numerical field C without colliding with separate Float16/Float32 work. This PR therefore does not define Complex as two Doubles, two Float32 values, SIMD lanes, or shader vectors. The x86-64 leading implementation supplies the first concrete Float32 executable arithmetic against the shared corpus.Shared corpus
_/fixtures/complex-projective/float32.jsonis the backend-neutral Float32 corpus for exact arithmetic, floating division/reciprocal, bounded complex exponential, polynomial/rational evaluation, polar observation, projective rescaling by real and phase factors, non-equivalence, affine charting, CP^1 infinity, and the deterministicR(z) exp(q(z))headless render scene.The bounded exponential fixture derives its analytic truncation term from
exp(|q|)|q|^8/8!; inputs outside the declared radius are to fail closed rather than gain an arbitrary tolerance.Acceptance
edric009typechecks, builds, and executesComplexProjectiveTests.idric. The exactExactComplexvalue fromQuadraticFormsis used only so the structural quotient identities reduce exactly at compile time.Exact head
8f86736f752acaafbbf529af89a5c9ae90cf6e0bhas green PR merge-topology compiler and source-layout workflows. The separate duplicate push-only compiler failure is the documented unrelatededric010/PREFIX_CHANGEDharness issue and is not promoted into a complex/projective failure.Idriç #80 is merged. This PR is retargeted to the canonical
Idriçbranch and does not touch the adjacent holomorphic-contract documentation PR #79.