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

◆ gbelem_make()

gbA::gbelem * gbA::gbelem_make ( gbvector * f,
gbvector * fsyz,
gbelem_type minlevel,
int deg )
private

Definition at line 362 of file gb-default.cpp.

366{
367 int f_leadweight;
368 gbelem *g = reinterpret_cast<gbelem *>(gbelem_stash->new_elem());
369 g->g.f = f;
370 g->g.fsyz = fsyz;
371 g->lead = exponents_make();
372 R->gbvector_get_lead_exponents(_F, f, g->lead);
373 g->deg = deg;
374 weightInfo_->gbvector_weight(f, f_leadweight); // return value not used
375 g->gap = deg - weightInfo_->gbvector_term_weight(f);
376 if (f->next == nullptr) // a monomial. This is a hack: we should lower the gap
377 // value when we can.
378 // the problem though is that this sometimes slows down the computation
379 // dramatically.
380 g->gap = 0;
381 g->size = R->gbvector_n_terms(f);
382 g->minlevel = minlevel;
383 return g;
384}
GBRing * R
stash * gbelem_stash
const GBWeight * weightInfo_
const FreeModule * _F
exponents_t exponents_make()
GBF4Polynomial f
Definition f4-types.hpp:139
int deg
Definition f4-types.hpp:140
gbelem_type minlevel
Definition f4-types.hpp:142
gbvector * next
Definition gbring.hpp:80

References _F, gbA::gbelem::deg, exponents_make(), POLY::f, POLY::fsyz, gbA::gbelem::g, gbA::gbelem::gap, gbelem_stash, gbA::gbelem::lead, gbA::gbelem::minlevel, gbvector::next, R, gbA::gbelem::size, and weightInfo_.

Referenced by insert_gb().