376 ring r = currentStrategy.getStartingRing();
377 ideal I = currentStrategy.getStartingIdeal();
378 currentStrategy.reduce(I,r);
379 if (currentStrategy.isValuationTrivial())
387 for (
int i=0;
i<
k;
i++)
401 if (zc.dimension()>=currentStrategy.getExpectedDimension())
417 while (zc.dimension()<currentStrategy.getExpectedDimension())
421 gfan::ZVector startingPoint = startingData.first;
443 for (
int i=0;
i<
k;
i++)
449 for (
int i=0;
i<
k;
i++)
475 for (
int i=0;
i<
k;
i++)
486 if (zc.dimension()>=currentStrategy.getExpectedDimension())
505 gfan::ZVector startingPoint = startingData.first;
512 ideal inI =
initial(I,r,startingPoint);
517 if (zc.dimension()==currentStrategy.getExpectedDimension())
520 ideal J =
lift(I,r,inJ,
s);
530 ring rShortcut =
rCopy0(r);
532 rShortcut->cf =
nCopyCoeff((currentStrategy.getShortcutRing())->cf);
538 for (
int i=0;
i<
k;
i++)
563 inJShortcut =
initial(inJShortcut,sShortcut,interiorPoint);
564 inI =
initial(inI,r,interiorPoint);
576 p_SetCoeff(inJ->m[0],identityMap(currentStrategy.getUniformizingParameter(),r->cf,
s->cf),
s);
578 for (
int i=0;
i<
k;
i++)
580 if(inJShortcut->m[
i]!=
NULL)
590 for (
int i=0;
i<
k;
i++)
596 for (
int i=0;
i<
k;
i++)
gfan::ZCone getPolyhedralCone() const
ideal getPolynomialIdeal() const
ring getPolynomialRing() const
gfan::ZVector getInteriorPoint() const
static FORCE_INLINE nMapFunc n_SetMap(const coeffs src, const coeffs dst)
set the mapping function pointers for translating numbers from src to dst
static FORCE_INLINE coeffs nCopyCoeff(const coeffs r)
"copy" coeffs, i.e. increment ref
number(* nMapFunc)(number a, const coeffs src, const coeffs dst)
maps "a", which lives in src, into dst
void nKillChar(coeffs r)
undo all initialisations
poly checkForMonomialViaSuddenSaturation(const ideal I, const ring r)
const CanonicalForm int s
poly initial(const poly p, const ring r, const gfan::ZVector &w)
Returns the initial form of p with respect to w.
ideal lift(const ideal J, const ring r, const ideal inI, const ring s)
poly p_PermPoly(poly p, const int *perm, const ring oldRing, const ring dst, nMapFunc nMap, const int *par_perm, int OldPar, BOOLEAN use_mult)
static number p_SetCoeff(poly p, number n, ring r)
static void p_Delete(poly *p, const ring r)
BOOLEAN rComplete(ring r, int force)
this needs to be called whenever a new ring is created: new fields in ring are created (like VarOffse...
ring rCopy0(const ring r, BOOLEAN copy_qideal, BOOLEAN copy_ordering)
void rDelete(ring r)
unconditionally deletes fields in r
ideal idInit(int idsize, int rank)
initialise an ideal / module
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
gfan::ZMatrix tropicalStartingPoints
std::pair< gfan::ZVector, groebnerCone > tropicalStartingDataViaGroebnerFan(const ideal I, const ring r, const tropicalStrategy ¤tStrategy)
Computes a starting point outside the lineatliy space by traversing the Groebner fan,...
static gfan::ZCone linealitySpaceOfGroebnerFan(const ideal I, const ring r)
ring createTraversalStartingRing(const ring s, const gfan::ZMatrix &startingPoints, const tropicalStrategy ¤tStrategy)
groebnerCone tropicalStartingCone(const tropicalStrategy ¤tStrategy)
ideal gfanlib_kStd_wrapper(ideal I, ring r, tHomog h=testHomog)
bool areIdealsEqual(ideal I, ring r, ideal J, ring s)
gfan::ZCone groebnerCone(const ideal I, const ring r, const gfan::ZVector &w)