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

◆ setWeightAndHash()

void ResMonoidSparse::setWeightAndHash ( res_packed_monomial result) const
inline

Definition at line 161 of file res-moninfo-sparse.hpp.

162 {
163 // assumes the following is set already:
164 // result[0] -- length
165 // result[2] -- component
166 // result[mFirstVar..len-1] -- monomial part
167 // sets:
168 // result[1] -- hash code
169 // result[FirstWeight..mFirstVar-1] -- weight vector values
170 const int* wt = mWeightVectors.data();
171 for (int j = 0; j < mNumWeights; j++, wt += mNumVars)
172 {
173 res_monomial_word val = 0;
174 for (int* v = result + mFirstVar; v != result + *result; ++v)
175 val += wt[*v];
176 result[mFirstWeight + j] = val;
177 }
178 res_monomial_word val = 0;
179 for (int* v = result + mFirstVar; v != result + *result; ++v)
180 val += hashfcn[*v];
181 result[1] = val;
182 }
std::vector< int > mWeightVectors
std::unique_ptr< res_monomial_word[]> hashfcn
VALGRIND_MAKE_MEM_DEFINED & result(result)
myword res_monomial_word

References hashfcn, mFirstVar, mFirstWeight, mNumVars, mNumWeights, mWeightVectors, and result().

Referenced by from_expvector(), and from_varpower_monomial().