Rank the sign of the imaginary coordinate without computing the coordinate.
Equations
- Hex.AlgebraicNumber.Radical.rank a = match a.side with | Hex.AlgebraicNumber.RootSide.lower => -1 | Hex.AlgebraicNumber.RootSide.real => 0 | Hex.AlgebraicNumber.RootSide.upper => 1
Instances For
A root candidate with its doubled real part computed once.
- value : AlgebraicNumber
- twiceRe : AlgebraicNumber
Instances For
Prefer greater real part, then the upper imaginary side.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The exact imaginary side of a lazy root, without factorization.
Equations
Instances For
One lazy root with its original precision, retained across refinement rounds.
- root : AlgebraicRoot
- prec : Int
Instances For
Same-polynomial root identity needs only the stored isolations.
Instances For
A candidate is accepted only if every other value is equal or strictly to its left.
Equations
Instances For
Bounded selection with one cached representative per candidate.
Equations
- One or more equations did not get rendered due to their size.
- Hex.RootSelection.search [] x✝ = match Hex.RootSelection.probe x✝ with | some best => some best.root | none => none
Instances For
Select a certified maximum real part, or leave the decision to an exact fallback.
Equations
- Hex.RootSelection.select? roots = Hex.RootSelection.search [16, 64] (List.map (fun (r : Hex.AlgebraicRoot) => { root := r, prec := r.rep.val.square.prec }) roots)
Instances For
A total-on-nonempty maximum selector, with the exact coordinate comparison retained only as a fallback for inconclusive interval probes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The integer root solver before exactification. This shares the checked
normalization/isolation pipeline of ZPoly.algebraicRoots?, without factoring
or canonicalizing every root.
Equations
- One or more equations did not get rendered due to their size.