29 if (
error())
return nullptr;
35 if ((m->len % 2) != 0)
37 ERROR(
"Monomial expected an even number of elements");
40 for (
unsigned int i = 2; i < m->len; i += 2)
41 if (m->array[i - 2] <= m->array[i])
43 ERROR(
"Monomial expects variables in descending order");
47 if (
error())
return nullptr;
54 if (
error())
return nullptr;
72 if (
this == &b)
return true;
126 if (
error())
return nullptr;
148 if (
error())
return nullptr;
std::vector< int > monom1
std::vector< int > monom2
EngineMonomial * operator*(const EngineMonomial &b) const
int simple_degree() const
EngineMonomial * erase(const EngineMonomial &b) const
bool divides(const Monoid *M, const EngineMonomial &b) const
bool is_equal(const EngineMonomial &b) const
int compare(const Monoid *M, const EngineMonomial &b) const
EngineMonomial * power(int n) const
EngineMonomial * radical() const
EngineMonomial * gcd(const EngineMonomial &b) const
void monsyz(const EngineMonomial &b, EngineMonomial *&sa, EngineMonomial *&sb) const
EngineMonomial * lcm(const EngineMonomial &b) const
virtual unsigned int computeHashValue() const
static EngineMonomial * make(int v, int e)
EngineMonomial * operator/(const EngineMonomial &b) const
static bool is_one(ConstExponents a)
static void radical(ConstExponents a, Vector &result)
static HashExponent computeHashValue(ConstExponents vp)
static void lcm(ConstExponents a, ConstExponents b, Vector &result)
static void mult(ConstExponents a, ConstExponents b, Vector &result)
static void from_arrayint(M2_arrayint m, Vector &result)
static void quotient(ConstExponents a, ConstExponents b, Vector &result)
static void gcd(ConstExponents a, ConstExponents b, Vector &result)
static Exponent simple_degree(ConstExponents m)
static void monsyz(ConstExponents a, ConstExponents b, Vector &sa, Vector &sb)
static void erase(ConstExponents a, ConstExponents b, Vector &result)
static void copy(ConstExponents vp, Vector &result)
static bool is_equal(ConstExponents a, ConstExponents b)
static void var(Exponent v, Exponent e, Vector &result)
static void power(ConstExponents a, Exponent n, Vector &result)
void from_varpower(const_varpower vp, monomial result) const
monomial make_one() const
int compare(int nslots, const_monomial m, const_monomial n) const
void remove(monomial d) const
bool divides(const_monomial m, const_monomial n) const
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
Engine error-reporting primitives: ERROR, INTERNAL_ERROR, error, error_message.
VALGRIND_MAKE_MEM_DEFINED & result(result)
Monoid — variable count, naming, grading, and monomial order of a polynomial ring.
EngineMonomial — opaque single-monomial value type used at the engine boundary.