Definition at line 1849 of file gb-default.cpp.
1850{
1851 gbvector head;
1852 gbvector *frem = &head;
1853
1855
1856 (void) use_denom;
1857 (void) denom;
1858 frem->
next =
nullptr;
1859 int count = 0;
1861 while (!
R->gbvector_is_zero(h.
f))
1862 {
1863 int gap;
1864 R->gbvector_get_lead_exponents(
_F, h.
f, EXP);
1868 if (w < 0 || gap > 0)
1869 {
1873 frem->
next =
nullptr;
1874 }
1875 else
1876 {
1878 if (!
R->gbvector_reduce_lead_term_ZZ(
1880 {
1881
1885 frem->
next =
nullptr;
1886 }
1887 count++;
1889 {
1890 buffer o;
1891 o << " tail rem by g" << w;
1892 o << ", yielding ";
1893 R->gbvector_text_out(o,
_F, h.
f, 3);
1895 }
1896 }
1897 }
1899
1901 {
1904 }
1908 {
1909 buffer o;
1910 o << "number of reduction steps was " << count;
1912 }
1914 {
1915 buffer o;
1916 o << "," << count;
1918 }
1919}
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 remainder().