58{
59
60
61
63 positions.reserve(polys0.size());
64
65 for (int i = 0; i < polys0.size(); i++) positions.push_back(i);
66
67
68
69
70 std::stable_sort(
71 positions.begin(), positions.end(), ReducedGB_Field_sorter(
R,
F, polys0));
72
73
74
75
76
77
78
79
80
81
82 for (
VECTOR(
int)::iterator i = positions.begin(); i != positions.end(); i++)
83 {
85 gbvector *f = polys0[*i].f;
87 R->gbvector_get_lead_exponents(
F, f, e);
88 if ((!
Rideal || !
Rideal->search_expvector(e, not_used)) &&
89 T->find_divisors(1, e, f->
comp) == 0)
90 {
91
92
94 ring_elem junk;
95
96 h.
f =
R->gbvector_copy(f);
97 h.
fsyz =
R->gbvector_copy(polys0[*i].fsyz);
98
99 if (auto_reduced)
remainder(h,
false, junk);
100
101 R->gbvector_remove_content(h.
f, h.
fsyz);
102
104 polys.push_back(h);
105 }
106 else
107 R->exponents_delete(e);
108 }
109}
exponents::Exponents exponents_t
virtual void remainder(POLY &f, bool use_denom, ring_elem &denom)
const MonomialIdeal * Rideal