431{
433 { "x", "y", "z" },
435 {3,2,1},
436 {3,2,1},
437 {1}
438 );
447
448 EXPECT_TRUE((*f).cbegin().monom().begin() + 2 == leadWord.
begin() && (*f).cbegin().monom().begin() + 5 == leadWord.
end());
449 EXPECT_TRUE((*f).cbegin().monom().begin() + 2 == leadWordPrefix.
begin() && (*f).cbegin().monom().begin() + 4 == leadWordPrefix.
end());
450 EXPECT_TRUE((*f).cbegin().monom().begin() + 3 == leadWordSuffix.
begin() && (*f).cbegin().monom().begin() + 5 == leadWordSuffix.
end());
451
455 EXPECT_TRUE(g == h);
456}
gc_vector< Poly * > PolyList
void var(Poly &result, int v) const
Word lead_word_prefix(const Poly &f, int endIndex) const
Word lead_word(const Poly &f) const
static FreeAlgebra * create(const Ring *K, const std::vector< std::string > &names, const PolynomialRing *degreeRing, const std::vector< int > °rees, const std::vector< int > &wtvecs, const std::vector< int > &heftVector)
Word lead_word_suffix(const Poly &f, int beginIndex) const
Owned Poly value paired with its FreeAlgebra*, providing natural operator-overloaded arithmetic.
Free associative algebra over a coefficient ring: the non-commutative analogue of PolynomialRing.
static auto createOverlapPoly(const FreeAlgebra &A, const PolyList &polyList, int polyIndex1, int polyIndex2, int overlapIndex) -> Poly *
const int * begin() const
Non-owning view of a non-commutative word: [begin, end) of int variable indices.
const PolynomialRing * degreeRing(const std::vector< std::string > &names)