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

◆ simplePolynomialRing() [1/2]

const PolynomialRing * simplePolynomialRing ( const Ring * kk,
const std::vector< std::string > & names,
MonomialOrdering * monorder )

Definition at line 61 of file util-polyring-creation.cpp.

64{
65 // degrees are all set to 1. (degree ring has one variable)
66 // heft is 1.
67
68 // Now create the monomial order. This one is a pain in the butt!
69 std::vector<int> degs;
70 for (int i=0; i<names.size(); i++) degs.push_back(1);
71 std::vector<int> heft {1};
72
73 const Monoid* M = Monoid::create(
74 monorder,
75 degreeRing(1),
76 names,
77 degs,
78 heft
79 );
80 if (M == nullptr) return nullptr; // an error should have been constructed
81 return PolyRing::create(kk, M);
82}
static Monoid * create(const MonomialOrdering *mo, const PolynomialRing *DR, const std::vector< std::string > &names, const std::vector< int > &degs, const std::vector< int > &hefts)
Definition monoid.cpp:61
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
Definition monoid.hpp:89
static const PolyRing * create(const Ring *K, const Monoid *M)
Definition poly.cpp:101
const PolynomialRing * degreeRing(const std::vector< std::string > &names)

References Monoid::create(), PolyRing::create(), and degreeRing().

Referenced by simplePolynomialRing(), TEST(), TEST(), and TEST().