372{
374 { "x", "y", "z" },
376 {1,2,3},
377 {},
378 {1}
379 );
384 F = X*Y + Y*X;
386 H = Y*Z + Z*Y;
387
388 auto GB = std::unique_ptr<ConstPolyList> (
new ConstPolyList);
389
390 GB->push_back(&*F);
392 GB->push_back(&*H);
393 EXPECT_TRUE(GB->size() == 3);
394
396
398
399
409 EXPECT_TRUE(f == h);
410}
gc_vector< const Poly * > ConstPolyList
void var(Poly &result, int v) 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)
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.
void setZero(Poly &f) const
void var(Poly &result, int v) const
void negate(Poly &result, const Poly &f) const
Owned Poly value paired with its FreeAlgebraQuotient*, providing operator-overloaded arithmetic for d...
Quotient of a FreeAlgebra by a Groebner basis up to a fixed degree bound.
const PolynomialRing * degreeRing(const std::vector< std::string > &names)