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

◆ gbvector_reduce_lead_term_ZZ()

bool GBRing::gbvector_reduce_lead_term_ZZ ( const FreeModule * F,
const FreeModule * Fsyz,
gbvector *& f,
gbvector *& fsyz,
const gbvector * g,
const gbvector * gsyz )

Definition at line 1027 of file gbring.cpp.

1035{
1036 int comp;
1037 ring_elem v;
1038
1040
1041 bool result = find_reduction_coeffs_ZZ(F, f, g, v);
1042 if (K->is_zero(v)) return false;
1043
1044 find_reduction_monomial(F, f, g, comp, MONOM1);
1045
1046 gbvector *result1 = mult_by_term(F, g, v, MONOM1, comp);
1047 gbvector_add_to(F, f, result1);
1048 if (gsyz != nullptr)
1049 {
1050 gbvector *result_syz1 = mult_by_term(Fsyz, gsyz, v, MONOM1, comp);
1051 gbvector_add_to(Fsyz, fsyz, result_syz1);
1052 }
1053 return result;
1054}
gbvector * mult_by_term(const FreeModule *F, const gbvector *f, ring_elem u, const int *monom, int comp)
Definition gbring.cpp:839
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
const Ring * K
Definition gbring.hpp:138
void gbvector_add_to(const FreeModule *F, gbvector *&f, gbvector *&g)
Definition gbring.cpp:668
bool find_reduction_coeffs_ZZ(const FreeModule *F, const gbvector *f, const gbvector *g, ring_elem &v)
Definition gbring.cpp:894
int * monomial
Definition gbring.hpp:102
VALGRIND_MAKE_MEM_DEFINED & result(result)
#define ALLOCATE_MONOMIAL(byte_len)
Definition monoid.hpp:65

References ALLOCATE_MONOMIAL, find_reduction_coeffs_ZZ(), find_reduction_monomial(), gbvector_add_to(), K, monom_size, mult_by_term(), and result().

Referenced by QRingInfo_ZZ::gbvector_normal_form().