Regard an integer polynomial in y as a polynomial in y whose
coefficients are constant polynomials in a second variable t.
Equations
Instances For
Coefficients of the outer lift are the corresponding constant polynomials.
The eliminant whose roots are pairwise sums of roots of p and q.
Equations
- p.addEliminant q = p.liftOuter.resultant (q.liftOuter.compose (Hex.DensePoly.C Hex.ZPoly.X - Hex.DensePoly.monomial 1 1))
Instances For
The polynomial y^degree(q) q(t/y), viewed as a polynomial in y
with coefficients in Int[t].
Equations
- One or more equations did not get rendered due to their size.
Instances For
The eliminant whose roots are pairwise products of roots of p and q.
Equations
- p.mulEliminant q = p.liftOuter.resultant q.mulSubstitute
Instances For
Remove the largest power of X dividing an integer polynomial.
Equations
- p.removeX = Hex.DensePoly.ofCoeffs (Array.popWhile (fun (x : Int) => x == 0) (Hex.DensePoly.toArray p).reverse).reverse
Instances For
Reverse coefficients, automatically trimming the degree drop caused by an original zero constant coefficient.
Equations
Instances For
Negating roots preserves positive leading normalization.
Negating roots preserves positive degree.
Negating roots preserves squarefreeness.
The Mahler precision is invariant under reflection and unit normalization.
Reflection of a complex ball.
Instances For
Minkowski difference of complex balls.
Instances For
Checked reciprocal enclosure. The centre reciprocal is rounded downward coordinatewise; three ulps cover both coordinate errors and the downward rounding of the radial distortion bound.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reflect a refined isolation while preserving its root certificate and separation precision.
Equations
Instances For
Normalize an eliminant, isolate all of its distinct roots, and retain the root meeting the supplied certified operation ball.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Certificate-free negation by reflection.
Equations
Instances For
Checked lazy sum through the addition eliminant.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Total lazy sum.
Equations
- a.add b = (a.add? b).getD (Hex.panicWith Hex.AlgebraicNumber.zero.toRoot "AlgebraicRoot.add: certification failed")
Instances For
Checked lazy difference.
Instances For
Total lazy difference.
Equations
- a.sub b = (a.sub? b).getD (Hex.panicWith Hex.AlgebraicNumber.zero.toRoot "AlgebraicRoot.sub: certification failed")
Instances For
Guard bits for multiplication-ball amplification.
Equations
- a.mulGuardBits b = 8 + Hex.PolyQuot.rootBits a.rep.val.square + Hex.PolyQuot.rootBits b.rep.val.square
Instances For
Guard bits for reciprocal-ball amplification. For a nonzero root of the
primitive integer polynomial p, reciprocal Cauchy gives
|a| ≥ 1 / (1 + coeffAbsMax p). Doubling the bit bound pays for the
|a|⁻² distortion in inversion; sixteen further bits cover the strict
nonzero guard and dyadic rounding.
Equations
- a.invGuardBits = 2 * Hex.ceilLog2 (a.p.coeffAbsMax + 1) + 16
Instances For
Checked lazy product through the product eliminant.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Total lazy product.
Equations
- a.mul b = (a.mul? b).getD (Hex.panicWith Hex.AlgebraicNumber.zero.toRoot "AlgebraicRoot.mul: certification failed")
Instances For
Checked lazy inverse through coefficient reversal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Total lazy inverse, with inv 0 = 0.
Equations
- a.inv = a.inv?.getD (Hex.panicWith Hex.AlgebraicNumber.zero.toRoot "AlgebraicRoot.inv: certification failed")
Instances For
Checked lazy quotient.
Instances For
Total lazy quotient.
Equations
- a.div b = (a.div? b).getD (Hex.panicWith Hex.AlgebraicNumber.zero.toRoot "AlgebraicRoot.div: certification failed")
Instances For
Canonical sum: perform the lazy operation, then exactify.
Instances For
Canonical difference: perform the lazy operation, then exactify.
Instances For
Canonical product: perform the lazy operation, then exactify.
Instances For
Canonical negation: reflect the lazy root, then exactify.
Instances For
Canonical inverse, with inv 0 = 0: perform the lazy operation, then
exactify.
Instances For
Canonical quotient: perform the lazy operation, then exactify.