AngouriMath
PolynomialFactorization
Property
Summary
Factors a polynomial by the polynomial layer — square-free decomposition, Zassenhaus
overQ , Kronecker's substitution and Hensel lifting — rather than by a rule.
over
Remarks
operation whose entire job is factorisation — was worse at it than the machinery that
exists for it. #1018
wired into
form —
could never win a search. There is no search here:
factored form and returns it.
several. Each of its variables is tried in turn and the first that yields a genuine
product wins, which is deterministic because Vars is. Trying them
all rather than guessing a main one is what makes
however the caller wrote it.
and anything whose answer is not a product — a refusal leaves the expression exactly as
the rules left it, so nothing that factored before can stop factoring.
Remarks
Held in a nested class rather than in a static field of this one. Static field
initialisers run in declaration order, and Factorization — declared
above — is eager, so a field here would still benull when its
pipeline is built. That surfaces asArgumentNullException(nameof(next)) from a
combinator rather than as anything naming the real cause, and this file has had that
failure before. A nested type is initialised on first touch, whatever order this
one's members are written in.
initialisers run in declaration order, and Factorization — declared
above — is eager, so a field here would still be
pipeline is built. That surfaces as
combinator rather than as anything naming the real cause, and this file has had that
failure before. A nested type is initialised on first touch, whatever order this
one's members are written in.
Angouri © 2019-2023 · Project's repo · Site's repo · Octicons · Transparency · 4378 pages online