Skip to content

Add balanced polynomial product trees - #9608

Open
kim-em wants to merge 13 commits into
mainfrom
poly-fast-trees
Open

Add balanced polynomial product trees#9608
kim-em wants to merge 13 commits into
mainfrom
poly-fast-trees

Conversation

@kim-em

@kim-em kim-em commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Adds the first product-tree layer for hex-poly-fast:

  • opaque balanced levels built through a lawful MulPlan
  • preserved leaf order, root-product theorem, level observations, and per-node represented-leaf/product observations
  • odd carry-node and empty-root behavior
  • always-on conformance and an O(M(n) log n) product-tree benchmark registration

This also fixes a real inconsistency in the merged EvalPlan SPEC: the published signature accepts arbitrarily large polynomials but a finite point-only plan cannot cache unbounded root reciprocal precision. The corrected contract uses the cached remainder tree for f.size <= plan.size and a total direct-evaluation fallback above that bound.

Depends on #9599. This targets upstream main per repository convention and includes the stacked multiplication/division base until that PR merges.

Kim Morrison added 10 commits August 25, 2026 04:05
The schoolbook path has quadratic coefficient work. Balanced multiplication and specialized squaring satisfy the three-recursion Karatsuba recurrence; the fixed 64-block skew dispatcher preserves that asymptotic bound.
Cost model: long division is quadratic because each leading-coefficient elimination updates a linear suffix. Cold Newton division costs O(M(n)): reciprocal doubling is a geometric series and the quotient/remainder use a constant number of clipped products.
kim-em added 3 commits August 26, 2026 14:52
# Conflicts:
#	.github/workflows/ci.yml
#	scripts/bench/proof_only_runtime_exemptions.json
# Conflicts:
#	.github/workflows/ci.yml
#	scripts/bench/proof_only_runtime_exemptions.json
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.

1 participant