Interpret flattened current-tower coordinates as a polynomial in the top
generator, with coefficients that are constant polynomials in X over the
lower tower.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The newest level's monic defining polynomial in the elimination variable,
with coefficients regarded as constant polynomials in X.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Substitute X - cY into a polynomial over the current tower, presenting
the result as a polynomial in Y over lower[X].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Shift modulo a quadratic relation, keeping only the constant and linear
generator coefficients. For Y² + bY + a, the norm is A² - bAB + aB².
Equations
- One or more equations did not get rendered due to their size.
Instances For
One Trager norm step. Input coefficients are flattened over
level :: lower; output coefficients are flattened over lower.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Eliminate every tower generator without shifting. This absolute norm is
used to obtain root candidates for splitting; recursive Trager factorization
continues to use oneLevel independently at each level.
Equations
- Hex.NumberTower.Norm.iterated [] x✝ = x✝
- Hex.NumberTower.Norm.iterated (level :: lower) x✝ = Hex.NumberTower.Norm.iterated lower (Hex.NumberTower.Norm.oneLevel level lower x✝ 0)
Instances For
Formal derivative over a runtime-indexed lower tower.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Monic normalization over the runtime-indexed lower tower.
Equations
Instances For
Executable squarefreeness test over a checked lower tower. The rational base uses the certified modular trial before exact gcd fallback.
Equations
- One or more equations did not get rendered due to their size.
- Hex.NumberTower.Norm.isSquarefree [] f = Hex.ZPoly.ratSquarefree (Hex.DensePoly.ofCoeffs (Array.map (fun (a : Array Rat) => a.getD 0 0) f))
Instances For
Number of deterministic Trager shifts required for a top degree d and
component degree m.
Equations
- Hex.NumberTower.Norm.tragerShiftCount d m = Hex.Nat.choose (d * m) 2 + 1
Instances For
Deterministic signed enumeration 0, 1, -1, 2, -2, ....
Instances For
Search successive signed shifts without materializing the remaining range.
Equations
- One or more equations did not get rendered due to their size.
- Hex.NumberTower.Norm.findSquarefreeShiftAux level lower f i 0 = none
Instances For
Search exactly the finite Trager collision bound and return the first shift whose one-level norm is squarefree over the lower tower.
Equations
- Hex.NumberTower.Norm.findSquarefreeShift level lower f = Hex.NumberTower.Norm.findSquarefreeShiftAux level lower f 0 (Hex.NumberTower.Norm.tragerShiftCount level.degree (f.size - 1))