Definition at line 1921 of file gb-default.cpp.
1922{
1923 gbvector head;
1924 gbvector *frem = &head;
1925 int count = 0;
1927
1929
1933 frem->
next =
nullptr;
1934
1935 while (!
R->gbvector_is_zero(h.
f))
1936 {
1937 int gap;
1938 R->gbvector_get_lead_exponents(
_F, h.
f, EXP);
1942
1943 if (w < 0 || gap > 0)
1944 {
1948 frem->
next =
nullptr;
1949 }
1950 else
1951 {
1953 if (!
R->gbvector_reduce_lead_term_ZZ(
1955 {
1956
1960 frem->
next =
nullptr;
1961 }
1962 count++;
1963
1965 {
1966 buffer o;
1967 o << " tail red by g" << w;
1968 o << ", yielding ";
1969 R->gbvector_text_out(o,
_F, h.
f, 3);
1971 }
1972 }
1973 }
1975
1977 {
1980 }
1984 {
1985 buffer o;
1986 o << "number of reduction steps was " << count;
1988 }
1990 {
1991 buffer o;
1992 o << "," << count;
1994 }
1995}
exponents::Exponents exponents_t
ring_elem minus_one() const
int find_good_monomial_divisor_ZZ(mpz_srcptr c, exponents_t e, int x, int degf, int &result_gap)
void gb(IntermediateBasis &F, int n)
#define ALLOCATE_EXPONENTS(byte_len)
void emit_wrapped(const char *s)
void emit_line(const char *s)
mpz_srcptr get_mpz() const
References _F, _Fsyz, ALLOCATE_EXPONENTS, gbvector::coeff, gbvector::comp, emit_line(), emit_wrapped(), exp_size, POLY::f, find_good_monomial_divisor_ZZ(), POLY::fsyz, gb(), ring_elem::get_mpz(), globalZZ, M2_gbTrace, gbvector::next, POLY, PRINT_SPAIR_TRACKING, R, buffer::str(), and x.
Referenced by replace_gb_element_ZZ().