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

◆ gen_step()

int GB_comp::gen_step ( )
private

Definition at line 653 of file gb-homog2.cpp.

659{
660 s_pair *p = _gens->remove();
661 if (p == nullptr) return SPAIR_DONE;
662 if (p->degree != _this_degree)
663 {
664 _gens->put_back(p);
665 return SPAIR_DONE;
666 }
667
669 _n_gens_left--;
670
672
673 gbvector *f = p->f;
674 gbvector *fsyz = p->fsyz;
675 p->f = nullptr;
676 p->fsyz = nullptr;
677 remove_pair(p);
678
679 gb_reduce(f, fsyz);
680 if (!_GR->gbvector_is_zero(f))
681 {
682 gb_insert(f, fsyz, 1); // 1 = minimal generator
683 return SPAIR_MINGEN;
684 }
685
686 if (!_GR->gbvector_is_zero(fsyz))
687 {
688 if (_collect_syz)
689 {
690 // vec fsyzvec = _GR->gbvector_to_vec(_Fsyz,fsyz);
691 _syz.push_back(fsyz);
692 _n_syz++;
693 return SPAIR_SYZ;
694 }
695 else
696 _GR->gbvector_remove(fsyz);
697 }
698
699 return SPAIR_ZERO;
700}
int _n_pairs_computed
Definition gb-homog2.hpp:94
void gb_reduce(gbvector *&f, gbvector *&fsyz)
int _n_syz
Definition gb-homog2.hpp:96
void remove_pair(s_pair *&p)
bool _collect_syz
void gb_insert(gbvector *f, gbvector *fsyz, int ismin)
s_pair_heap * _gens
Definition gb-homog2.hpp:83
int _n_gens_left
Definition gb-homog2.hpp:93
int _this_degree
Definition gb-homog2.hpp:75
void compute_s_pair(s_pair *p)
GBRing * _GR
Definition gb-homog2.hpp:68
const int SPAIR_ZERO
Definition comp-gb.hpp:53
const int SPAIR_DONE
Definition comp-gb.hpp:50
const int SPAIR_SYZ
Definition comp-gb.hpp:52
const int SPAIR_MINGEN
Definition comp-gb.hpp:54
int p

References _collect_syz, _gens, _GR, _n_gens_left, _n_pairs_computed, _n_syz, _this_degree, compute_s_pair(), gb_insert(), gb_reduce(), p, remove_pair(), SPAIR_DONE, SPAIR_MINGEN, SPAIR_SYZ, and SPAIR_ZERO.

Referenced by start_computation().