AngouriMath

Navigation

← Back to list of members

Satisfies​(System.​Collections.​Generic.​IReadOnlyList{AngouriMath.​Entity},​System.​Collections.​Generic.​IReadOnlyList{AngouriMath.​Entity.​Variable},​AngouriMath.​Entity[],​AngouriMath.​Functions.​Algebra.​Groebner.​GroebnerBudget)

 Method (no overloads)

Summary

Substitutes a candidate into the original equations and insists they come out
exactly zero.

Remarks

Needed because a triangular basis can hand back a tuple that satisfies the
triangle without satisfying the system it came from, where the ideal is not in
shape position. So candidates are checked rather than trusted.
InnerSimplified and deliberately not
Simplify(System.Int32). The full simplifier searches — it generates
candidate forms and picks between them — so how long it takes to decide a nested
radical is not bounded by anything, and an early version of this spent longer
failing to prove a degree-nine root satisfied its system than the old solver takes
to solve the whole thing. `InnerSimplified` is one structural pass, which is
cheap enough to be safe here and still proves what is needed:
sqrt(2)^2 - 2, (3^(1/3))^3 - 3 and a Cardano cube root all reduce to
zero in single-digit milliseconds.
It only ever proves zero, never disproves it, so a candidate it cannot settle is
declined and the system falls back. That costs coverage and never costs
correctness — and no tolerance is involved anywhere, which is what would turn a
root that is merely close into one that gets reported.

























Angouri © 2019-2023 · Project's repo · Site's repo · Octicons · Transparency · 1953 pages online