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

◆ schreyer_compare()

int SchreyerOrder::schreyer_compare ( const_monomial m,
int m_comp,
const_monomial n,
int n_comp ) const

Definition at line 337 of file schorder.cpp.

341{
342 const_monomial ms = base_monom(m_comp);
343 const_monomial ns = base_monom(n_comp);
344 for (int i = M->monomial_size(); i > 0; --i)
345 {
346 int cmp = *ms++ + *m++ - *ns++ - *n++;
347 if (cmp < 0) return LT;
348 if (cmp > 0) return GT;
349 }
350 int cmp = compare_num(m_comp) - compare_num(n_comp);
351 if (cmp < 0) return LT;
352 if (cmp > 0) return GT;
353 return EQ;
354}
const Monoid * M
Definition schorder.hpp:69
int compare_num(int i) const
Definition schorder.hpp:90
const_monomial base_monom(int i) const
Definition schorder.hpp:91
const int * const_monomial
Definition imonorder.hpp:45
const int EQ
Definition style.hpp:40
const int GT
Definition style.hpp:41
const int LT
Definition style.hpp:39

References base_monom(), compare_num(), EQ, GT, LT, and M.

Referenced by GBRing::gbvector_compare(), and PolyRing::vec_locate_lead_term().