55 return mpz_cmp_si(
x, i);
59 return mpq_cmp_si(
x, i, j);
108 virtual bool is_ZZ()
const {
return true; }
112 static unsigned int mod_ui(mpz_srcptr n,
unsigned int p);
113 static std::pair<bool, int>
get_si(mpz_srcptr n);
148 void internal_negate_to(
ring_elem &f)
const;
187 bool p_parens =
false)
const;
191 int first_var)
const;
int mask_mpq_cmp_si(mpq_srcptr x, long int i, long int j)
unsigned int computeHashValue_mpz(mpz_srcptr a)
int mask_mpz_cmp_si(mpz_srcptr x, long int i)
wrapper for the mpz_struct integer representation
Abstract base class for mutable matrices over an arbitrary engine Ring, the in-place counterpart of t...
Abstract base for the engine's polynomial-ring hierarchy.
Engine-side ring homomorphism: stores, for each source-ring variable, the target-ring element it maps...
virtual ring_elem add(const ring_elem f, const ring_elem g) const
virtual MutableMatrix * makeMutableMatrix(size_t nrows, size_t ncols, bool dense) const
virtual bool promote(const Ring *R, const ring_elem f, ring_elem &result) const
virtual ring_elem negate(const ring_elem f) const
virtual ring_elem power(const ring_elem f, mpz_srcptr n) const
Exponentiation. This is the default function, if a class doesn't define this.
virtual unsigned int computeHashValue(const ring_elem a) const
virtual ring_elem quotient(const ring_elem f, const ring_elem g) const
virtual bool is_unit(const ring_elem f) const
virtual bool is_zero(const ring_elem f) const
static unsigned int mod_ui(mpz_srcptr n, unsigned int p)
virtual void lower_content(ring_elem &c, ring_elem g) const
virtual ring_elem from_long(long n) const
virtual void syzygy(const ring_elem a, const ring_elem b, ring_elem &x, ring_elem &y) const
virtual ring_elem eval(const RingMap *map, const ring_elem f, int first_var) const
virtual bool lower_associate_divisor(ring_elem &f, ring_elem g) const
virtual bool from_rational(mpq_srcptr q, ring_elem &result) const
virtual ring_elem remainderAndQuotient(const ring_elem f, const ring_elem g, ring_elem ") const
virtual void remove(ring_elem &f) const
bool initialize_ZZ(const PolynomialRing *deg_ring)
M2::ARingZZGMP * get_ARing() const
virtual ring_elem subtract(const ring_elem f, const ring_elem g) const
virtual ring_elem random() const
virtual ring_elem from_int(mpz_srcptr n) const
virtual ring_elem divide(const ring_elem f, const ring_elem g) const
virtual int compare_elems(const ring_elem f, const ring_elem g) const
static std::pair< bool, int > get_si(mpz_srcptr n)
ring_elem gcd(const ring_elem f, const ring_elem g) const
int is_positive(const ring_elem a) const
virtual bool is_equal(const ring_elem f, const ring_elem g) const
virtual CoefficientType coefficient_type() const
virtual ring_elem invert(const ring_elem f) const
virtual bool is_ZZ() const
virtual ring_elem mult(const ring_elem f, const ring_elem g) const
virtual ring_elem remainder(const ring_elem f, const ring_elem g) const
virtual std::pair< bool, long > coerceToLongInteger(ring_elem a) const
virtual void text_out(buffer &o) const
RingZZ * cast_to_RingZZ()
ring_elem gcd_extended(const ring_elem f, const ring_elem g, ring_elem &u, ring_elem &v) const
const RingZZ * cast_to_RingZZ() const
virtual ring_elem preferred_associate(ring_elem f) const
virtual void elem_text_out(buffer &o, const ring_elem f, bool p_one=true, bool p_plus=false, bool p_parens=false) const
virtual ring_elem copy(const ring_elem f) const
virtual bool lift(const Ring *R, const ring_elem f, ring_elem &result) const
Engine error-reporting primitives: ERROR, INTERNAL_ERROR, error, error_message.
VALGRIND_MAKE_MEM_DEFINED & result(result)
Ring — the legacy abstract base class for every coefficient and polynomial ring.