857{
858
859
860
861 VECTOR(mpz_srcptr) coeffs;
862 VECTOR(mpz_srcptr) coeffs2;
866
867 coeffs.reserve(
gb.size());
868 coeffs2.reserve(
gb.size());
869 exps.reserve(
gb.size());
870 comps.reserve(
gb.size());
871
872 for (
VECTOR(
spair *)::iterator i = new_set.begin(); i != new_set.end(); i++)
873 {
875 exps.push_back(a->
lcm);
876 comps.push_back(1);
877
878
879
880
882 {
884 coeffs2.push_back(nullptr);
885 }
886 else
887 {
888
889 gbvector *f1 =
gb[a->x.pair.
i]->g.f;
890 gbvector *f2 =
gb[a->x.pair.
j]->g.f;
891 ring_elem u, v;
894 coeffs2.push_back(v.
get_mpz());
895
896 if (mpz_cmpabs_ui(u.
get_mpz(), 1) && mpz_cmpabs_ui(v.
get_mpz(), 1))
897 {
900 {
901 buffer o;
902 o << " creating ";
905 }
907 }
908 }
909 }
910
913 _nvars, coeffs, exps, comps, positions);
914 else
916 _nvars, coeffs, exps, comps, positions,
true);
917
918 for (
VECTOR(
int)::iterator i = positions.begin(); i != positions.end(); i++)
919 {
920
923 {
924 buffer o;
925 o << " creating ";
928 }
930#if 0
931 mpz_ptr u = coeffs[*i];
932 mpz_ptr v = coeffs2[*i];
934 {
937 {
938 buffer o;
941 }
943 }
944#endif
945 }
946}
exponents::Exponents exponents_t
static void find_weak_generators(int nvars, const VECTOR(mpz_srcptr) &coeffs, const VECTOR(exponents_t) &exps, const VECTOR(int) &comps, VECTOR(int) &result_positions, bool use_stable_sort=true)
virtual void syzygy(const ring_elem a, const ring_elem b, ring_elem &x, ring_elem &y) const
void spair_text_out(buffer &o, spair *p)
void spair_set_insert(spair *p)
spair * spair_make_gcd_ZZ(int i, int j)
void gb(IntermediateBasis &F, int n)
void emit_line(const char *s)
mpz_srcptr get_mpz() const