1190{
1191 int comp;
1192 const ring_elem a = f->
coeff;
1193 const ring_elem b = g->
coeff;
1194 mpz_t gab, u1, v1;
1195
1200
1203
1204 mpz_init(gab);
1205 mpz_init(u1);
1206 mpz_init(v1);
1208 mpz_clear(gab);
1209
1210
1211 ring_elem u = ring_elem(u1);
1212 ring_elem v = ring_elem(v1);
1214 {
1216 result_syz = nullptr;
1217 mpz_clear(u1);
1218 mpz_clear(v1);
1219 return;
1220 }
1226 else
1227 comp = 0;
1229 {
1230
1231 if (
_skew.mult_sign(EXP3, EXP1) !=
_skew.mult_sign(EXP4, EXP2))
1233 }
1234 M->from_expvector(EXP3, MONOM1);
1235 M->from_expvector(EXP4, MONOM2);
1237 gbvector *result1 =
mult_by_term(F, g, v, MONOM2, comp);
1239 if (fsyz == nullptr && gsyz == nullptr)
1240 result_syz = nullptr;
1241 else
1242 {
1244 gbvector *result_syz1 =
mult_by_term(Fsyz, gsyz, v, MONOM2, comp);
1246 }
1247 mpz_clear(u1);
1248 mpz_clear(v1);
1249}
exponents::Exponents exponents_t
gbvector * mult_by_term(const FreeModule *F, const gbvector *f, ring_elem u, const int *monom, int comp)
bool is_skew_commutative() const
void gbvector_add_to(const FreeModule *F, gbvector *&f, gbvector *&g)
void gbvector_get_lead_exponents(const FreeModule *F, const gbvector *f, int *result)
void exponent_syzygy(const int *exp1, const int *exp2, int *exp3, int *exp4)
virtual bool is_zero(const ring_elem f) const
VALGRIND_MAKE_MEM_DEFINED & result(result)
#define ALLOCATE_EXPONENTS(byte_len)
#define ALLOCATE_MONOMIAL(byte_len)
mpz_srcptr get_mpz() const