mirror of
https://github.com/Z3Prover/z3
synced 2025-08-06 03:10:25 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
016732aa59
commit
39edf73e78
16 changed files with 222 additions and 162 deletions
|
@ -44,6 +44,11 @@ namespace polynomial {
|
|||
typedef svector<var> var_vector;
|
||||
class monomial;
|
||||
|
||||
typedef enum { sign_neg = -1, sign_zero = 0, sign_pos = 1} sign;
|
||||
inline sign operator-(sign s) { switch (s) { case sign_neg: return sign_pos; case sign_pos: return sign_neg; default: return sign_zero; } };
|
||||
inline sign to_sign(int s) { return s == 0 ? sign_zero : (s > 0 ? sign_pos : sign_neg); }
|
||||
inline sign operator*(sign a, sign b) { return to_sign((int)a * (int)b); }
|
||||
|
||||
int lex_compare(monomial const * m1, monomial const * m2);
|
||||
int lex_compare2(monomial const * m1, monomial const * m2, var min_var);
|
||||
int graded_lex_compare(monomial const * m1, monomial const * m2);
|
||||
|
@ -278,6 +283,12 @@ namespace polynomial {
|
|||
*/
|
||||
static unsigned id(polynomial const * p);
|
||||
|
||||
|
||||
/**
|
||||
\brief Normalize coefficients by dividing by their gcd
|
||||
*/
|
||||
void gcd_simplify(polynomial* p);
|
||||
|
||||
/**
|
||||
\brief Return true if \c m is the unit monomial.
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue