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

◆ minimalize_res_varpower_monomials()

void minimalize_res_varpower_monomials ( const VECTOR(res_varpower_monomial) & elems,
VECTOR(int) & result_minimals,
stash * mi_stash )

Definition at line 540 of file res-f4-monlookup.cpp.

544{
545 VECTOR(VECTOR(int) *) bins;
546 for (int j = 0; j < elems.size(); j++)
547 {
549 if (d >= bins.size())
550 for (int i = INTSIZE(bins); i <= d; i++) bins.push_back(nullptr);
551 if (bins[d] == nullptr) bins[d] = new VECTOR(int);
552 bins[d]->push_back(j);
553 }
554
555 // Now insert these into a lookup table
557 10, mi_stash); // The 10 is simply a suggested start value
558 for (int i = 0; i < bins.size(); i++)
559 if (bins[i] != nullptr)
560 {
561 for (VECTOR(int)::iterator j = bins[i]->begin(); j != bins[i]->end();
562 j++)
563 {
564 int k;
565 if (!M.find_one_divisor_vp(0, elems[*j], k))
566 {
567 M.insert_minimal_vp(0, elems[*j], 0);
568 result_minimals.push_back(*j);
569 }
570 }
571 freemem(bins[i]);
572 }
573}
static Exponent simple_degree(ConstExponents m)
void freemem(void *s)
Definition m2-mem.cpp:103
#define VECTOR(T)
Definition newdelete.hpp:78
res_varpower_monomials::Exponent res_varpower_word
TermIterator< Nterm > begin(Nterm *ptr)
Definition ringelem.cpp:4
#define INTSIZE(a)
Definition style.hpp:37

References begin(), ResF4MonomialLookupTableT< Key >::find_one_divisor_vp(), freemem(), ResF4MonomialLookupTableT< Key >::insert_minimal_vp(), INTSIZE, ExponentList< myword, false >::simple_degree(), and VECTOR.