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

◆ from_varpower_monomial()

void MonomialInfo::from_varpower_monomial ( const_varpower_monomial m,
long comp,
packed_monomial result ) const
inline

Definition at line 292 of file moninfo.hpp.

295 {
296 // 'result' must have enough space allocated
298 result[0] = 0;
299 result[1] = comp;
300 for (int i = 2; i < nslots; i++)
301 {
302 result[i] = 0;
303 }
304 for (index_varpower_monomial j = m; j.valid(); ++j)
305 {
306 varpower_word v = j.var();
307 varpower_word e = j.exponent();
308 result[firstvar + v] = e;
309 if (e == 1)
310 result[0] += hashfcn[v];
311 else
312 result[0] += e * hashfcn[v];
313 }
314
315 const int *wt = mWeightVectors.data();
316 for (int j = 0; j < mNumWeights; j++, wt += nvars)
317 {
318 long val = 0;
319 for (index_varpower_monomial i = m; i.valid(); ++i)
320 {
321 varpower_word v = i.var();
322 varpower_word e = i.exponent();
323 long w = wt[v];
324 if (e == 1)
325 val += w;
326 else
327 val += w * e;
328 result[2 + j] = val;
329 }
330 }
331 }
std::vector< int > mWeightVectors
Definition moninfo.hpp:119
unsigned long ncalls_from_varpower
Definition moninfo.hpp:138
monomial_word * hashfcn
Definition moninfo.hpp:111
VALGRIND_MAKE_MEM_DEFINED & result(result)
varpower_monomials::Exponent varpower_word
ExponentListIterator< long, false > index_varpower_monomial

References firstvar, hashfcn, mNumWeights, mWeightVectors, ncalls_from_varpower, nslots, nvars, and result().