3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-06 17:22:13 +00:00

normalize polynomials

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2025-12-10 12:09:38 -10:00
parent 653a4ece42
commit 1fe7359c7b
5 changed files with 39 additions and 17 deletions

View file

@ -128,7 +128,7 @@ namespace polynomial {
m_factor_cache.reset();
}
unsigned pid(polynomial * p) const { return m.id(p); }
unsigned pid(const polynomial * p) const { return m.id(p); }
polynomial * mk_unique(polynomial * p) {
if (m_in_cache.get(pid(p), false))
@ -141,6 +141,10 @@ namespace polynomial {
return p_prime;
}
bool contains(const polynomial * p) const {
return m_in_cache.get(pid(p), false);
}
void psc_chain(polynomial * p, polynomial * q, var x, polynomial_ref_vector & S) {
p = mk_unique(p);
q = mk_unique(q);
@ -213,6 +217,10 @@ namespace polynomial {
return m_imp->mk_unique(p);
}
bool cache::contains(const polynomial * p) const {
return m_imp->contains(p);
}
void cache::psc_chain(polynomial const * p, polynomial const * q, var x, polynomial_ref_vector & S) {
m_imp->psc_chain(const_cast<polynomial*>(p), const_cast<polynomial*>(q), x, S);
}

View file

@ -34,6 +34,7 @@ namespace polynomial {
manager & m() const;
manager & pm() const { return m(); }
polynomial * mk_unique(polynomial * p);
bool contains(const polynomial * p) const;
void psc_chain(polynomial const * p, polynomial const * q, var x, polynomial_ref_vector & S);
void factor(polynomial const * p, polynomial_ref_vector & distinct_factors);
void reset();