107
108{
110
115
116
117 int total = 0;
118 for (
int i = 0; i <
monorder_->nblocks; i++)
119 {
122 }
123
124
125 bool get_out = false;
127 for (
int i = 0; i <
monorder_->nblocks && !get_out; i++)
128 {
130 {
135 get_out = true;
136 break;
149 continue;
151 continue;
152 default:
154 }
155 }
157
159
162
164
165 for (
int i=0; i<
n_vars(); ++i)
166 {
169 }
170
171
172
173
174
175
176
177
178
179
180}
bool component_up_
indicates whether free module components are ordered lexicographically
const std::vector< int > mDegrees
length mVariableCount * (length of a single degree vector)
std::vector< bool > mLaurentVariablesPredicate
These are the variables which can have negative exponents.
const Monoid * mDegreeMonoid
gc_vector< int > nslots_
number of slots per monomial order block
const PolynomialRing * mDegreeRing
int n_invertible_vars_
number of invertible variables
void set_degrees()
sets mHeftDegrees and mDegreeOfVar
const int mVariableCount
number of variables
const MonomialOrdering * mo_
the monomial ordering of the variables
void set_overflow_flags()
used for preventing overflows
std::vector< int > mHeftDegrees
length mVariableCount
enum Monoid::overflow_type * overflow
std::vector< int > local_vars
These are the variables which are < 1 in the monomial order.
int n_before_component_
indicates where the free module components are in the monomial order
const std::vector< int > mHeftVector
length of a single degree vector
bool isLaurentVariable(int i) const
const std::vector< std::string > mVariableNames
names of variables
int monomial_size_
size of an encoded monomial
MonomialOrder * monorder_
void INTERNAL_ERROR(const char *s,...)
MonomialOrder * monomialOrderMake(const MonomialOrdering *mo)
#define EXPONENT_BYTE_SIZE(nvars)
int rawNumberOfInvertibleVariables(const MonomialOrdering *mo)
M2_arrayint rawNonTermOrderVariables(const MonomialOrdering *mo)
int rawNumberOfVariables(const MonomialOrdering *mo)
std::vector< T > M2_arrayint_to_stdvector(M2_arrayint arr)