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

◆ ResMonoidSparse()

ResMonoidSparse::ResMonoidSparse ( int mNumVars,
const std::vector< int > & var_degrees,
const std::vector< int > & weightvecs,
const MonomialOrderingType moType )

Definition at line 9 of file res-moninfo-sparse.cpp.

13{
14 mNumVars = nvars;
15 hashfcn =
16 std::unique_ptr<res_monomial_word[]>(new res_monomial_word[mNumVars]);
17 for (int i = 0; i < mNumVars; i++) hashfcn[i] = rand();
18 mask = 0x10000000;
19 mVarDegrees = var_degrees;
20
24 ncalls_mult = 0;
32 ncalls_divide = 0;
33 ncalls_weight = 0;
36
37 mNumWeights = 0;
38 if (moType == MonomialOrderingType::Lex) // moIsLex(mo)
39 {
40 // mCompareFcn = &ResMonoidSparse::compare_lex;
41
42 if (M2_gbTrace >= 1) fprintf(stderr, "lex order\n");
43 }
44 else if (moType == MonomialOrderingType::GRevLex) // moIsGRevLex(mo)
45 {
46 // mCompareFcn = &ResMonoidSparse::compare_grevlex;
47
48 if (M2_gbTrace >= 1) fprintf(stderr, "grevlex order\n");
49 }
50 else
51 {
52 mWeightVectors = weightvecs;
53 mNumWeights = static_cast<int>(mWeightVectors.size()) / nvars;
54 // mCompareFcn = &ResMonoidSparse::compare_weightvector;
55
56 if (M2_gbTrace >= 1) fprintf(stderr, "weight order\n");
57 }
58
59 nslots = 3 + nvars + mNumWeights;
61 mFirstWeight = 3;
62}
unsigned long ncalls_from_expvector
unsigned long ncalls_from_varpower
unsigned long ncalls_weight
unsigned long ncalls_compare
res_monomial_word mask
unsigned long ncalls_hash_value
unsigned long ncalls_is_equal_true
unsigned long ncalls_to_varpower
std::vector< int > mVarDegrees
unsigned long ncalls_mult
unsigned long ncalls_quotient_as_vp
unsigned long ncalls_unneccesary
unsigned long ncalls_compare_grevlex
std::vector< int > mWeightVectors
unsigned long ncalls_is_equal
unsigned long ncalls_divide
unsigned long ncalls_to_expvector
unsigned long ncalls_get_component
std::unique_ptr< res_monomial_word[]> hashfcn
int M2_gbTrace
Definition m2-types.cpp:52
myword res_monomial_word

References GRevLex, hashfcn, Lex, M2_gbTrace, mask, mFirstVar, mFirstWeight, mNumVars, mNumWeights, mVarDegrees, mWeightVectors, ncalls_compare, ncalls_compare_grevlex, ncalls_divide, ncalls_from_expvector, ncalls_from_varpower, ncalls_get_component, ncalls_hash_value, ncalls_is_equal, ncalls_is_equal_true, ncalls_mult, ncalls_quotient_as_vp, ncalls_to_expvector, ncalls_to_varpower, ncalls_unneccesary, ncalls_weight, and nslots.