Macaulay2 Engine
Loading...
Searching...
No Matches

◆ compare_elems()

int PolyRing::compare_elems ( const ring_elem f,
const ring_elem g ) const
virtual

Implements Ring.

Definition at line 510 of file poly.cpp.

511{
512 int cmp;
513 Nterm *a = f;
514 Nterm *b = g;
515 for (;; a = a->next, b = b->next)
516 {
517 if (a == nullptr)
518 {
519 if (b == nullptr) return 0;
520 return -1;
521 }
522 if (b == nullptr) return 1;
523 if (nvars_ > 0)
524 {
525 cmp = M_->compare(a->monom, b->monom);
526 if (cmp != 0) return cmp;
527 }
528 cmp = K_->compare_elems(a->coeff, b->coeff);
529 if (cmp != 0) return cmp;
530 }
531}
const Ring * K_
Definition polyring.hpp:123
const Monoid * M_
Definition polyring.hpp:124
Nterm * next
Definition ringelem.hpp:157
ring_elem coeff
Definition ringelem.hpp:158
int monom[1]
Definition ringelem.hpp:160

References Nterm::coeff, PolynomialRing::K_, PolynomialRing::M_, Nterm::monom, Nterm::next, and PolynomialRing::nvars_.