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

◆ insertLevelOne()

bool SchreyerFrame::insertLevelOne ( res_packed_monomial monom,
int degree,
ResPolynomial & syzygy )

Definition at line 644 of file res-schreyer-frame.cpp.

647{
648 insertBasic(1, monom, deg); // deg is the actual degree of this element.
649 component_index comp = monoid().get_component(monom);
650 auto last = static_cast<component_index>(level(1).size());
651 auto& p = level(0)[comp];
652 if (p.mBegin == -1) p.mBegin = last - 1;
653 p.mEnd = last;
654 if (!check_poly(ring(), syzygy, schreyerOrder(0)))
655 {
656 if (M2_gbTrace >= 1)
657 {
658 std::cout
659 << "Error: expected terms of polynomial to be in order, in poly#"
660 << last << ": ";
661 display_poly(std::cout, ring(), syzygy);
662 std::cout << std::endl;
663 }
664 return false;
665 }
666 std::swap(level(1)[level(1).size() - 1].mSyzygy, syzygy);
667 return true;
668}
component_index get_component(res_const_packed_monomial m) const
const ResMonoid & monoid() const
std::vector< FrameElement > & level(int lev)
void insertBasic(int lev, res_packed_monomial monom, int degree)
const ResPolyRing & ring() const
ResSchreyerOrder & schreyerOrder(int lev)
int p
int M2_gbTrace
Definition m2-types.cpp:52
void swap(mpfr::mpreal &x, mpfr::mpreal &y)
Definition mpreal.h:3244
myword component_index
bool check_poly(const ResPolyRing &R, const ResPolynomial &f, const ResSchreyerOrder &ord)
void display_poly(std::ostream &o, const ResPolyRing &R, const ResPolynomial &f)

References check_poly(), display_poly(), ResMonoidDense::get_component(), insertBasic(), level(), M2_gbTrace, monoid(), p, ring(), schreyerOrder(), and std::swap().