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

◆ simplePolynomialRing() [2/2]

const PolynomialRing * simplePolynomialRing ( int p,
const std::vector< std::string > & names )

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

85{
86 // if p is 0, use QQ.
87 // degrees are all set to 1. (degree ring has one variable)
88 // heft is 1.
89 // monomial order is grevlex.
90
91 const Ring *kk = (p > 0 ? rawARingZZpFlint(p) : rawARingQQFlint());
92 if (kk == nullptr) return nullptr; // one of these routines would have made an error.
93
95 ({
96 MonomialOrderings::GRevLex(names.size()),
98 });
99
100 return simplePolynomialRing(kk, names, monorder);
101}
static MonomialOrdering * PositionUp()
static MonomialOrdering * GRevLex(int nvars)
static MonomialOrdering * join(const std::vector< MonomialOrdering * > &M)
xxx xxx xxx
Definition ring.hpp:102
int p
const Ring * rawARingQQFlint()
Definition aring.cpp:37
const Ring * rawARingZZpFlint(unsigned long p)
Definition aring.cpp:51
Front-end-side description of a monomial ordering as a list of mon_part blocks.
const PolynomialRing * simplePolynomialRing(const Ring *kk, const std::vector< std::string > &names, MonomialOrdering *monorder)

References MonomialOrderings::GRevLex(), MonomialOrderings::join(), p, MonomialOrderings::PositionUp(), rawARingQQFlint(), rawARingZZpFlint(), and simplePolynomialRing().