58 ERROR(
"expected polynomial ring");
62 for (
int i = 0; i < m->
n_cols(); i++)
75 const RingMap *inclusionAmbient,
76 const RingMap *fullSubstitution,
77 const RingMap *substitutionInclusion,
85 bool breakFlag =
false;
88 while ((f !=
nullptr) && (breakFlag ==
false))
100 Nterm *LTgInT = gInT;
101 LTgInT->
next =
nullptr;
112 ring_elem projectionh =
T->eval(substitutionInclusion,h1,0);
114 if(projectionh !=
nullptr)
117 ring_elem hInS =
T->eval(fullSubstitution,h1,0);
142 const RingMap *inclusionAmbient,
143 const RingMap *fullSubstitution,
144 const RingMap *substitutionInclusion,
151 if ((
T ==
nullptr) || (S ==
nullptr))
153 ERROR(
"expected polynomial ring");
156 int nslots =
T->getMonoid()->n_slots(numparts);
157 for (
int i = 0; i < m->
n_cols(); i++)
161 inclusionAmbient,fullSubstitution,substitutionInclusion,
162 gbI,gbReductionIdeal);
163 result.set_entry(0, i, b);
166 return result.to_matrix();
170#warning "sagbi code commented out"
virtual const Matrix * matrix_remainder(const Matrix *m)=0
base class for Groebner basis computations.
const Ring * get_ring() const
ring_elem elem(int i, int j) const
const FreeModule * rows() const
const FreeModule * cols() const
void set_entry(int r, int c, ring_elem a)
Mutable builder used to assemble an immutable Matrix one column (or one term) at a time.
int n_slots(int nparts) const
virtual ring_elem eval(const RingMap *map, const ring_elem f, int first_var) const
virtual ring_elem copy(const ring_elem f) const
virtual bool in_subring(int nslots, const ring_elem a) const
void internal_subtract_to(ring_elem &f, ring_elem &g) const
Concrete PolyRingFlat subclass implementing ordinary commutative polynomial rings K[x_1,...
virtual const Monoid * getMonoid() const
virtual FreeModule * make_FreeModule() const
virtual const PolyRing * cast_to_PolyRing() const
Engine-side ring homomorphism: stores, for each source-ring variable, the target-ring element it maps...
static ring_elem subduct(int numslots, const PolyRing *R, ring_elem f, const RingMap *phi, GBComputation *J)
static ring_elem subduct1(int numslots, const PolyRing *T, const PolyRing *S, ring_elem a, const RingMap *inclusionAmbient, const RingMap *fullSubstitution, const RingMap *substitutionInclusion, GBComputation *gbI, GBComputation *gbReductionIdeal)
VALGRIND_MAKE_MEM_DEFINED & result(result)
MatrixConstructor — the mutable builder that produces an immutable Matrix.
Concrete commutative PolyRing — standard polynomial ring inheriting from PolyRingFlat.
sagbi — subduction helpers for canonical-subalgebra (SAGBI) bases.
Singly linked-list node carrying one term of a polynomial-ring element.