33 for (
int i=0; i<names.size(); i++)
52 if (degM ==
nullptr)
return nullptr;
57 assert(ndegrees == 1);
62 const std::vector<std::string>& names,
69 std::vector<int> degs;
70 for (
int i=0; i<names.size(); i++) degs.push_back(1);
71 std::vector<int> heft {1};
80 if (M ==
nullptr)
return nullptr;
92 if (kk ==
nullptr)
return nullptr;
static Monoid * create(const MonomialOrdering *mo, const PolynomialRing *DR, const std::vector< std::string > &names, const std::vector< int > °s, const std::vector< int > &hefts)
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
static MonomialOrdering * Weights(const std::vector< int > &wts)
static MonomialOrdering * PositionUp()
static MonomialOrdering * GRevLex(int nvars)
static MonomialOrdering * GroupLex(int nvars)
static MonomialOrdering * join(const std::vector< MonomialOrdering * > &M)
static const PolyRing * create(const Ring *K, const Monoid *M)
Abstract base for the engine's polynomial-ring hierarchy.
const Ring * rawARingQQFlint()
const Ring * rawARingZZpFlint(unsigned long p)
const Ring * IM2_Ring_trivial_polyring()
Front-end-side description of a monomial ordering as a list of mon_part blocks.
const Monoid * degreeMonoid(const std::vector< std::string > &names)
const PolynomialRing * degreeRing(const std::vector< std::string > &names)
const PolynomialRing * simplePolynomialRing(const Ring *kk, const std::vector< std::string > &names, MonomialOrdering *monorder)
One-line helpers for building degree monoids and polynomial rings inside gtest cases.