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

◆ gbvector_reduce_with_marked_lead_term()

void GBRing::gbvector_reduce_with_marked_lead_term ( const FreeModule * F,
const FreeModule * Fsyz,
gbvector * flead,
gbvector *& f,
gbvector *& fsyz,
const gbvector * ginitial,
const gbvector * g,
const gbvector * gsyz,
bool use_denom,
ring_elem & denom )

Definition at line 979 of file gbring.cpp.

989{
990 int comp;
991 ring_elem u, v;
992
994
995 find_reduction_coeffs(F, f, ginitial, u, v);
996 find_reduction_monomial(F, f, ginitial, comp, MONOM1);
997
998 if (!K->is_equal(u, _one))
999 {
1000 gbvector_mult_by_coeff_to(f, u); // modifies f
1001 gbvector_mult_by_coeff_to(flead, u);
1003 if (use_denom) K->mult_to(denom, u);
1004 }
1005
1006 gbvector *result1 = mult_by_term(F, g, v, MONOM1, comp);
1007 gbvector_add_to(F, f, result1);
1008 if (gsyz != nullptr)
1009 {
1010 gbvector *result_syz1 = mult_by_term(Fsyz, gsyz, v, MONOM1, comp);
1011 gbvector_add_to(Fsyz, fsyz, result_syz1);
1012 }
1013}
void gbvector_mult_by_coeff_to(gbvector *f, ring_elem u)
Definition gbring.cpp:557
gbvector * mult_by_term(const FreeModule *F, const gbvector *f, ring_elem u, const int *monom, int comp)
Definition gbring.cpp:839
ring_elem _one
Definition gbring.hpp:164
size_t monom_size
Definition gbring.hpp:170
void find_reduction_monomial(const FreeModule *F, const gbvector *f, const gbvector *g, int &comp, int *&monom)
Definition gbring.cpp:922
void find_reduction_coeffs(const FreeModule *F, const gbvector *f, const gbvector *g, ring_elem &u, ring_elem &v)
Definition gbring.cpp:872
const Ring * K
Definition gbring.hpp:138
void gbvector_add_to(const FreeModule *F, gbvector *&f, gbvector *&g)
Definition gbring.cpp:668
int * monomial
Definition gbring.hpp:102
#define ALLOCATE_MONOMIAL(byte_len)
Definition monoid.hpp:65

References _one, ALLOCATE_MONOMIAL, find_reduction_coeffs(), find_reduction_monomial(), gbvector_add_to(), gbvector_mult_by_coeff_to(), K, monom_size, and mult_by_term().