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

◆ remove_content()

bool binomial_ring::remove_content ( binomial & f) const

Definition at line 190 of file gb-toric.cpp.

191{
192 // If the monomials of f have a common monomial factor, remove it from each,
193 // and
194 // return true. Otherwise return false.
195 monomial m = f.lead;
196 monomial n = f.tail;
197 bool result = false;
198 for (int i = 0; i < nvars; i++)
199 {
200 if (m[i] > 0 && n[i] > 0)
201 {
202 if (m[i] > n[i])
203 {
204 m[i] -= n[i];
205 n[i] = 0;
206 }
207 else
208 {
209 n[i] -= m[i];
210 m[i] = 0;
211 }
212 result = true;
213 }
214 }
215 if (result)
216 {
217 set_weights(m); // This is an inefficient way to do this...
218 set_weights(n);
219 }
220 return result;
221}
void set_weights(monomial0 m) const
Definition gb-toric.cpp:73
#define monomial
Definition gb-toric.cpp:11
VALGRIND_MAKE_MEM_DEFINED & result(result)
monomial0 tail
Definition gb-toric.hpp:52
monomial0 lead
Definition gb-toric.hpp:51

References binomial::lead, monomial, nvars, result(), set_weights(), and binomial::tail.