The normalized product with inverse-root parameters.
Equations
- HexRootsMathlib.remotePoly s = (Multiset.map (fun (a : ℂ) => 1 - Polynomial.C a * Polynomial.X) s).prod
Instances For
The normalized remote-root product has constant coefficient one.
The normalized product has degree at most the number of parameters, including when a zero parameter makes a nominal linear factor constant.
Normalizing each nonzero linear root factor by its constant term produces
the inverse-root polynomial remotePoly.
A nonzero complex polynomial with nonzero constant term is its constant term times the normalized inverse-root product. This is the polynomial bridge from item 25's multiset estimate.
The weighted coefficient mass through degree < n.
Equations
- HexRootsMathlib.coeffMass p n ρ = ∑ k ∈ Finset.range n, ‖p.coeff k‖ * ρ ^ k
Instances For
Multiplication by one linear factor increases weighted coefficient mass by at most the weighted mass of that factor.
The first remote coefficient is bounded by the same positive-degree tail. This also covers the degree-one case, where the remote multiset is empty and the coefficient vanishes.
The degree side condition paired with pellet_one_of_roots. Keeping it
next to the dominance theorem makes the two hypotheses of pellet directly
available from the same root-multiset decomposition.
Exact first-term Pellet converse. Suppose the complete root multiset
of q consists of one designated near root a and the remote multiset s.
If every remote root is at least d from zero and the displayed wide-margin
inequality holds, then the first coefficient of q strictly dominates the
complete coefficient tail at radius ρ.
The exponent s.card counts remote roots with multiplicity. The statement
also covers s = 0, so linear polynomials require no separate API.
Translation form of pellet_one_of_roots. Here z is the designated
root of p, s is the multiset of every other root (with multiplicity), and
the conclusion is stated directly for the Taylor polynomial about an
arbitrary centre c.
This is the clean-margin terminus of the Pellet converse; the executable
completeness chain in Completeness.PelletDyadic uses the slack variant
pellet_one_comp_slack instead, which absorbs the dyadic rounding gap.